|
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-2024 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.