|
In free format....
Chain (Company:Employee) EmpMast;
If %Found(EmpMast);
Do something...
Else
do something else...
endif
SetLL (Company:Employee) EmpMast;
ReadE (Company) EmpMast;
Dow not %EoF(EmpMast) And (Employee = *Blanks Or File'sEmployee =
Employee);
do something...
EndDo;
Michael Schutte
Work 614-492-7419
email michael_schutte@xxxxxxxxxxxx
"Jake M"
<jakeroc@xxxxxxxx
m> To
Sent by: "RPG programming on the AS400 /
rpg400-l-bounces@ iSeries" <rpg400-l@xxxxxxxxxxxx>
midrange.com cc
Subject
03/29/2006 02:49 Re: newbie prototype question...
PM
Please respond to
RPG programming
on the AS400 /
iSeries
<rpg400-l@midrang
e.com>
Michael Schutte,
Are you a good teacher or what? Well, that was extremely nice of you to
give
detailed instructions in that tutorial about the usage of Binding
Directory.
Thank you for that. I am really comfortable with the concept of binding
directories, now. Rob, I will follow that redbook and muster as much
information as I can. Another newbie question.../include and /COPY mean the
same thing, right? Also, I was wondering if Michael could put out an
example
for the usage of 'CHAIN' when he is feeling generous about his time.....:)
Thanks,
Jake.
On 3/29/06, rob@xxxxxxxxx <rob@xxxxxxxxx> wrote:
>
> Look for the redbook "Who Knew You Could Do That with RPG IV? A
> Sorcerer's Guide to System Access and More" SG24-5402-00
> Section 4.2 "ILE tips for the RPG programmer" Especially 4.2.4 "Service
> programs, binder language, and signatures" and 4.2.5 "Using binding
> directories"
> http://www.redbooks.ibm.com/abstracts/sg245402.html
>
> Rob Berendt
> --
> Group Dekko Services, LLC
> Dept 01.073
> PO Box 2000
> Dock 108
> 6928N 400E
> Kendallville, IN 46755
> http://www.dekko.com
>
>
>
>
>
> "Jake M" <jakeroc@xxxxxxxxx>
> Sent by: rpg400-l-bounces@xxxxxxxxxxxx
> 03/29/2006 09:46 AM
> Please respond to
> RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
>
>
> To
> "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
> cc
>
> Subject
> Re: newbie prototype question...
>
>
>
>
>
>
> Rob,
> No problem. Matt pointed it out and I corrected it. It is such a simple
> thing, I should have known but me being so new to RPG does not help at
> all.
> But I appreciate all the assistance I am getting in this forum. Okay,
> now...
>
> Michael:
>
> I idea of Binding Directory is clear as mud right now(so to speak). Is it
> similar to creating a Source Physical File and then adding members to it?
> Just that in place of members, you add modules. Is that right? Please
> forgive my lack of knowledge. Modules using EXPORT??
>
> Jake.
>
> On 3/29/06, rob@xxxxxxxxx <rob@xxxxxxxxx> wrote:
> >
> > My bad, I did that part from memory.
> > /include QPROTOSRC(PROTO_02)
> > should be
> > /include QPROTOSRC,PROTO_02
> > I am very sorry.
> >
> > Rob Berendt
> > --
> > Group Dekko Services, LLC
> > Dept 01.073
> > PO Box 2000
> > Dock 108
> > 6928N 400E
> > Kendallville, IN 46755
> > http://www.dekko.com
> >
> >
> >
> >
> >
> > "Jake M" <jakeroc@xxxxxxxxx>
> > Sent by: rpg400-l-bounces@xxxxxxxxxxxx
> > 03/28/2006 04:55 PM
> > Please respond to
> > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
> >
> >
> > To
> > "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
> > cc
> >
> > Subject
> > Re: newbie prototype question...
> >
> >
> >
> >
> >
> >
> > Rob,
> > I created a Physical Source File called QPROTOSRC and in that I created
> a
> > member named PROTO_02. This has
> >
> > D PROTO_02 PR EXTPGM('PROTO_02')
> > D num1 15P 5
> > D num2 15P 5
> >
> > and in my QRPGLESRC I have another member named PROTO_02, also. This
has
> >
> > /include QPROTOSRC(PROTO_02)
> >
> > D PROTO_02 PI
> > D num1 15P 5
> > D num2 15P 5
> >
> >
> > D num3 S 15P 5
> >
> > /free
> > num3 = num1 + num2;
> > dsply num3;
> > dsply 'DONE';
> > *inlr = *on;
> > /end-free
> >
> > but I am getting an error saying..
> >
> > RNF0273 Compiler not able to open the /COPY or /INCLUDE file; directive
> > ignored.
> >
> > Am I doing something wrong here?
> >
> > Jake.
> >
> > On 3/28/06, rob@xxxxxxxxx <rob@xxxxxxxxx> wrote:
> > >
> > > Jake,
> > >
> > > I - Calling from a different program.
> > > What is often done is cutting out the
> > > D PROTO_02 PR EXTPGM('PROTO_02')
> > > D num1 15P 5
> > > D num2 15P 5
> > > and putting that into a seperate source member. Like
> > QPROTOSRC,PROTO_02.
> > > And in the PROTO_02 program replace what you cut out with
> > > /include QPROTOSRC(PROTO_02)
> > > Now, in the new program that you wrote, that you want to call
PROTO_02
> > you
> > > also include this:
> > > /include QPROTOSRC(PROTO_02)
> > > D nbr1 s 15p 5
> > > D nbr2 s like(nbr1)
> > > then, in your calcs you do a simple
> > > /free
> > > callp PROTO_02(nbr1:nbr2);
> > > or simply the implied callp
> > > PROTO_02(nbr1:nbr2);
> > >
> > >
> > > II - Subroutine
> > > You meant subprocedure. They are different from a subroutine. See
if
> > you
> > > understand this simple program named JAKE, compiled, tested.
> > > h dftactgrp(*no) actgrp(*caller)
> > > D Jake PR EXTPGM('JAKE')
> > > D Input1 15p 5
> > > D Input2 15p 5
> > >
> > > D Jake PI
> > > D Input1 15p 5
> > > D Input2 15p 5
> > >
> > > D MyCalc PR 5i 0
> > > D SomeNbr1 7p 2 const
> > > D SomeNbr2 7p 2 const
> > >
> > > D DsplyVar s 5i 0
> > >
> > > /free
> > > *inlr=*on;
> > > // Take the parameters sent to this program, use a simple
> > > // subprocedure to add them together and display the result.
> > > DsplyVar=MyCalc(Input1:Input2);
> > > dsply DsplyVar;
> > > /end-free
> > >
> > > P MyCalc B
> > > D MyCalc PI 5i 0
> > > D ThisNbr1 7p 2 const
> > > D ThisNbr2 7p 2 const
> > > /free
> > > return ThisNbr1 + ThisNbr2;
> > > /end-free
> > > P MyCalc E
> > >
> > > DSPJOBLOG
> > > CALL PGM(JAKE) PARM(X'000000000100000F' X'000000000200000F')
> > > DSPLY 3
> > >
> > > Rob Berendt
> > > --
> > > Group Dekko Services, LLC
> > > Dept 01.073
> > > PO Box 2000
> > > Dock 108
> > > 6928N 400E
> > > Kendallville, IN 46755
> > > http://www.dekko.com
> > >
> > >
> > >
> > >
> > >
> > > "Jake M" <jakeroc@xxxxxxxxx>
> > > Sent by: rpg400-l-bounces@xxxxxxxxxxxx
> > > 03/28/2006 02:50 PM
> > > Please respond to
> > > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
> > >
> > >
> > > To
> > > "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
> > > cc
> > >
> > > Subject
> > > Re: newbie prototype question...
> > >
> > >
> > >
> > >
> > >
> > >
> > > Okay, the following code snippet works.
> > >
> > > D PROTO_02 PR
> > > D num1 15P 5
> > > D num2 15P 5
> > >
> > > D PROTO_02 PI
> > > D num1 15P 5
> > > D num2 15P 5
> > >
> > >
> > > D num3 S 15P 5
> > >
> > > /free
> > > num3 = num1 + num2;
> > > dsply num3;
> > > dsply 'DONE';
> > > *inlr = *on;
> > > /end-free
> > > Can somebody please give me an example of how I could call this
> function
> > > from an outside program. Can it be done like Michael suggested:
> > >
> > > DIFFPROG.RPGLE
> > > /free
> > > var3 = PROTO_02(5:6);
> > > dsply var3;
> > > //var3 would have 11.
> > > //ofcourse var1, var2, var3 are already declared as 15 P 5(I surmise
> it
> > is
> > > a
> > > language necessity).
> > > /end-free
> > >
> > > I was also wondering if somebody could give some sample code for a
> > simple
> > > subroutine program. For example a subroutine which takes two numbers
> and
> > > gives out the product.
> > >
> > > Thanks for all the assistance.
> > >
> > > Jake.
> > >
> > >
> > >
> > >
> > >
> > >
> > > On 3/28/06, cozzi@xxxxxxxxx <cozzi@xxxxxxxxx> wrote:
> > > >
> > > > If someone already answered this, sorry.
> > > >
> > > >
> > > > Numeric parameters MUST be coded at Packed(15,5) when the
program
> > is
> > > to
> > > > be
> > > > called from Command Entry.
> > > > The only way around it is to code hex values (as Kurt
> illustrated).
> > > Use
> > > > a
> > > > CMD definition or compile the call into a CL program with
> variables
> > > > defined to match that of the RPG program.
> > > >
> > > > -BOB
> > > >
> > > >
> > > >
> > > > -------- Original Message --------
> > > > Subject: RE: newbie prototype question...
> > > > From: "Kurt Anderson" <kjanderson@xxxxxxxxxxxxx>
> > > > Date: Tue, March 28, 2006 12:58 pm
> > > > To: "RPG programming on the AS400 / iSeries"
> > > <rpg400-l@xxxxxxxxxxxx>
> > > >
> > > > Does this work?
> > > >
> > > > CALL PGM(MYLIB/PROTO) PARM(x'1f' x'2f')
> > > >
> > > > Our system defaults unspecified numerics to zoned, but I think
> > it's
> > > a
> > > > system thing and some people's default to packed.
> > > > I suggest explicitly stating in the definition if the number
is
> > > zoned
> > > > or
> > > > packed.
> > > >
> > > > Kurt Anderson
> > > > Application Developer
> > > > Highsmith Inc
> > > >
> > > > -----Original Message-----
> > > > From: rpg400-l-bounces+kjanderson=highsmith.com@xxxxxxxxxxxx
> > > >
[mailto:rpg400-l-bounces+kjanderson=highsmith.com@xxxxxxxxxxxx]
> > On
> > > > Behalf Of Jake M
> > > > Sent: Tuesday, March 28, 2006 10:47 AM
> > > > To: RPG programming on the AS400 / iSeries
> > > > Subject: newbie prototype question...
> > > >
> > > > I am trying to execute a simple prototype program but I keep
> > > getting
> > > > an
> > > > error(it compiles fine). I am calling the program as follows:
> > > >
> > > > CALL PGM(MYLIB/PROTO) PARM(1 2)
> > > >
> > > > There might be a very simple mistake I am doing..I am also
> > looking
> > > > for a
> > > > very simple example on a subroutine program and a program
which
> > > uses
> > > > /COPY.
> > > > Any help in this matter will be greatly appreciated.
> > > >
> > > > D addnums PR EXTPGM('PROTO')
> > > > D num1 1 0
> > > > D num2 1 0
> > > >
> > > > D addnums PI
> > > > D num1 1 0
> > > > D num2 1 0
> > > >
> > > > D num3 S 1 0
> > > >
> > > > /free
> > > > num3 = num1 + num2;
> > > > dsply num3;
> > > > dsply 'DONE';
> > > > *inlr = *on;
> > > > /end-free
> > > >
> > > > Error:
> > > >
> > > > D
> > > > Pointer or parameter error (C G D F).
> > > >
> > > > Thanks in advance,
> > > >
> > > > Jake.
> > > > --
> > > > This is the RPG programming on the AS400 / iSeries (RPG400-L)
> > > mailing
> > > > list To post a message email: RPG400-L@xxxxxxxxxxxx To
> subscribe,
> > > > unsubscribe, or change list options,
> > > > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > > > or email: RPG400-L-request@xxxxxxxxxxxx
> > > > Before posting, please take a moment to review the archives at
> > > > http://archive.midrange.com/rpg400-l.
> > > >
> > > > --
> > > > This is the RPG programming on the AS400 / iSeries (RPG400-L)
> > > mailing
> > > > list
> > > > To post a message email: RPG400-L@xxxxxxxxxxxx
> > > > To subscribe, unsubscribe, or change list options,
> > > > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > > > or email: RPG400-L-request@xxxxxxxxxxxx
> > > > Before posting, please take a moment to review the archives
> > > > at http://archive.midrange.com/rpg400-l.
> > > > --
> > > > This is the RPG programming on the AS400 / iSeries (RPG400-L)
> mailing
> > > list
> > > > To post a message email: RPG400-L@xxxxxxxxxxxx
> > > > To subscribe, unsubscribe, or change list options,
> > > > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > > > or email: RPG400-L-request@xxxxxxxxxxxx
> > > > Before posting, please take a moment to review the archives
> > > > at http://archive.midrange.com/rpg400-l.
> > > >
> > > >
> > > --
> > > This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
> > list
> > > To post a message email: RPG400-L@xxxxxxxxxxxx
> > > To subscribe, unsubscribe, or change list options,
> > > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > > or email: RPG400-L-request@xxxxxxxxxxxx
> > > Before posting, please take a moment to review the archives
> > > at http://archive.midrange.com/rpg400-l.
> > >
> > >
> > > --
> > > This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
> > list
> > > To post a message email: RPG400-L@xxxxxxxxxxxx
> > > To subscribe, unsubscribe, or change list options,
> > > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > > or email: RPG400-L-request@xxxxxxxxxxxx
> > > Before posting, please take a moment to review the archives
> > > at http://archive.midrange.com/rpg400-l.
> > >
> > >
> > --
> > This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
> list
> > To post a message email: RPG400-L@xxxxxxxxxxxx
> > To subscribe, unsubscribe, or change list options,
> > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > or email: RPG400-L-request@xxxxxxxxxxxx
> > Before posting, please take a moment to review the archives
> > at http://archive.midrange.com/rpg400-l.
> >
> >
> > --
> > This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
> list
> > To post a message email: RPG400-L@xxxxxxxxxxxx
> > To subscribe, unsubscribe, or change list options,
> > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > or email: RPG400-L-request@xxxxxxxxxxxx
> > Before posting, please take a moment to review the archives
> > at http://archive.midrange.com/rpg400-l.
> >
> >
> --
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list
> To post a message email: RPG400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
>
> --
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list
> To post a message email: RPG400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
>
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.