You know, there are a lot of things that can generate Excel spreadsheets, but the requirement is that it run on IBM i, and be callable from RPG. If you suggest something that does not fit within those parameters, you might as well be suggesting something that runs on a quantum computer.
Mark Murphy
STAR BASE Consulting, Inc.
mmurphy@xxxxxxxxxxxxxxx
-----Matt Olson <Matt.Olson@xxxxxxxx> wrote: -----
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
From: Matt Olson <Matt.Olson@xxxxxxxx>
Date: 03/02/2016 12:14PM
Subject: RE: Update Excel with RPG
I'm thinking just run the program purely on .NET, no RPG necessary.
-----Original Message-----
From: Rob Berendt [mailto:rob@xxxxxxxxx]
Sent: Wednesday, March 2, 2016 10:34 AM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
Subject: RE: Update Excel with RPG
Let's see, I'm generating an excel spreadsheet to either be automatically emailed, filed or stored on a download site. And it would be less obfuscated to call .NET than it would be to have RPG use Java routines?
Rob Berendt
--
IBM Certified System Administrator - IBM i 6.1 Group Dekko Dept 1600 Mail to: 2505 Dekko Drive
Garrett, IN 46738
Ship to: Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com
From: Matt Olson <Matt.Olson@xxxxxxxx>
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
Date: 03/02/2016 10:20 AM
Subject: RE: Update Excel with RPG
Sent by: "MIDRANGE-L" <midrange-l-bounces@xxxxxxxxxxxx>
Another thought. Use .NET and Open XML SDK:
https://github.com/OfficeDev/Open-XML-SDK
Add/Remove/Updating cells and worksheets example here:
https://msdn.microsoft.com/en-us/library/office/hh180830(v=office.14).aspx
There are also many other options such as: EPPlus:
http://epplus.codeplex.com/
You can make charts, pivot tables, update/remove data with either of those
two libraries.
The Open XML SDK is the more complete one though as it supports the latest
Office 2016 OXML extensions.
Matt
-----Original Message-----
From: John Yeung [mailto:gallium.arsenide@xxxxxxxxx]
Sent: Tuesday, March 1, 2016 5:31 PM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
Subject: Re: Update Excel with RPG
On Tue, Mar 1, 2016 at 10:50 AM, Mark Murphy/STAR BASE Consulting Inc.
<mmurphy@xxxxxxxxxxxxxxx> wrote:
Porting a C or C++ library to ILE C/C++ to be called by RPG would be
significantly more performant than Java, and not Goldbergian at all.
I agree it would be more performant than Java, especially if you're not
crossing the boundary between "native" and PASE. Even if you were relying
on PASE, C/C++ should be faster than Java (both on PASE).
I also agree that a native port to ILE C/C++ would be less Goldbergian to
*use* than a PASE port, but the native port would also require greater
effort to create in the first place. It's hard for me to envision anyone
having the required time, expertise, and interest to do it when the
pre-existing options (including RPG wrappers for POI) are not all that
horrible.
As far as Python goes, I do not know much about it other than it cares
about proper indenting to know which statements go with which control
blocks. Can it be called by a program object?
Depends on what you mean. The iSeriesPython interpreter is a native i
command (*CMD). You call it more or less like you would call the Rexx
interpreter, so in practice the calling program would have to be a CLP, or
the job scheduler, or use QCMDEXC or QCAPCMD. Scripts in either Python or
Rexx are not stand-alone executables, but effectively an input parameter
to the interpreter. You can also pass additional input parameters, but
there is no way to get information out directly from the call. (The
script's only means of returning information is through writing to a file,
data area, user space, spooled file, socket, etc.)
I haven't used IBM's Python for PASE, but I imagine the parameter
situation is pretty much the same as for iSeriesPython.
Can it call into a program object, or better a service program?
iSeriesPython scripts can call native program objects (*PGM) no problem,
with both input and output parameters. It looks like the guy who created
iSeriesPython intended for you to be able to call service program
procedures as well, but that interface is at least partially broken and I
haven't bothered to test it extensively enough to know if it's completely
broken.
I have no experience with IBM's Python for PASE, but I don't think it can
call native programs directly. It uses XMLSERVICE to do much (maybe all?)
of the interop with the native side.
John Y.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at
http://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
As an Amazon Associate we earn from qualifying purchases.