× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Thanks for the great info, Paul.

The more threads I read, the more I am convinced that my colleague is
correct - the subfile is reading the data by reference.

I'm going to play with some values to see if this is indeed the case.

Thanks!

Brian.

-----Original Message-----
From: Paul Tuohy [mailto:tuohyp@xxxxxxxxxxxxx] 
Sent: Friday, October 14, 2005 3:01 AM
To: RPG programming on the AS400 / iSeries
Subject: Re: Printing a Subfile - Revisited

Hi Brian,

It would seem from the code that the fields you are using to place
values in 
the DETAIL record fields are not from the subfile.

7 of the 8 fields you are printing are incorrect and these are the 7
fields 
you are setting in the loop.

Therefore - spno01, spno02, spno03, sppctl, spspcd, spsplc, spsddt,
spsdtm, 
spptno, spoqty do NOT come from the subfile.

At a guess, you copied this bit of logic from the loop that you used to 
build the subfile. The reason that the values are the same on every
record 
you print is that they were the values in the last record you read from
the 
database file (?).

If you are using the same field names on the DETAIL record as you have
in 
the subfile SPODATA record then you do not need to have any moves and
the 
routine should simply be

        BegSR PrintReport;
          rdashes = *ALL'-';
          write HEADING;
          For Rrn = 1 To Rrn_Max;
            Chain Rrn SPODATA;
            If PrtOverFlow;
              Write HEADING;
              PrtOverflow = *off;
            endif;

            Write DETAIL;
          EndFor;
          Write pfooter;
          Close SPOINQP;
          Open SPOINQP;
        EndSR;

It is much easier to use a For loop instead of a Dow (it means you do
not 
need to do the rrn+1).
You do NOT HAVE TO use the RRN field on the CHAIN - you can use a
workfield 
if you want. But you might as well use RRN.

HTH

Paul Tuohy
ComCon
+353 1 282 6230
www.comconadvisor.com


----- Original Message ----- 
From: "Brian Piotrowski" <bpiotrowski@xxxxxxxxxxxxxxx>
To: "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
Sent: Thursday, October 13, 2005 9:08 PM
Subject: RE: Printing a Subfile - Revisited


> Hmmm, ok.  Well, still strange things abound...
>
> I've made the modifications to the code as directed by the group (Al,
I
> had to add Rrn = Rrn +1 or the code went into endless loop).  So
here's
> where we stand:
>
>        BegSR PrintReport;
>          rdashes = *ALL'-';
>          Rrn = 1;
>          write HEADING;
>          DoW Rrn < Rrn_Max;
>            Chain Rrn SPODATA;
>            If PrtOverFlow;
>              Write HEADING;
>              PrtOverflow = *off;
>            endif;
>
>            SPONUM = spno01 + '-' + spno02 + '-' + spno03;
>            PARTCL = %subst(spptcl:1:7);
>            SUPPLIER = spspcd + ' ' + spsplc;
>            SPOSDATE = %subst(%char(spsddt):5:2) + '/'
>                      + %subst(%char(spsddt):7:2) + '/'
>                      + %subst(%char(spsddt):1:4);
>
>            if %len(%trim(%char(spsdtm))) = 1;
>              SPOSTIME = '00:0' + %trim(%char(spsdtm));
>            endif;
>
>            if %len(%trim(%char(spsdtm))) = 2;
>              SPOSTIME = '00:' + %trim(%char(spsdtm));
>            endif;
>
>            if %len(%trim(%char(spsdtm))) = 3;
>              SPOSTIME = '0' + %subst(%char(spsdtm):1:1) + ':'
>                        + %subst(%char(spsdtm):2:2);
>            endif;
>
>            if %len(%trim(%char(spsdtm))) = 4;
>              SPOSTIME = %subst(%char(spsdtm):1:2) + ':'
>                        + %subst(%char(spsdtm):3:2);
>            endif;
>
>            PARTNO = %trim(spptno);
>            QTY = %trim(%editc(spoqty:'3'));
>
>            Write DETAIL;
>            Rrn = Rrn + 1;
>          EndDo;
>          Write pfooter;
>          Close SPOINQP;
>          Open SPOINQP;
>        EndSR;
>
> So I run the program and query the database.  Here's the data that is
> returned:
>
> 200510-ZA-001 32155S9V A031            6      191630 13 RP  10/01/2005
> 08:08
> 200510-ZA-001 32155S9V A121            6      191630 13 RP  10/01/2005
> 08:08
> 200510-ZA-001 32155S9V A301            6      191630 13 RP  10/01/2005
> 08:08
> 200510-ZA-002 33100S3V A120M1          2      141350 04 SS  10/02/2005
> 09:38
> 200510-ZA-003 51320S0X C000M1          120    132280 01 SS  10/02/2005
> 11:37
> 200510-ZA-004 76861S3V A040M2          10     140290 04 SS  10/02/2005
> 14:11
> 200510-ZA-005 79100S3V A400M1          3      140290 11 SS  10/02/2005
> 14:11
>
> Now when I print out the data, it executes the above subroutine.
Here's
> what comes out:
>
> 200510-ZA-005  79100S3V A400M1           3       140290 11  SS
> 10/02/2005  14:11
> 200510-ZA-005  79100S3V A400M1           3       140290 11  RP
> 10/02/2005  14:11
> 200510-ZA-005  79100S3V A400M1           3       140290 11  RP
> 10/02/2005  14:11
> 200510-ZA-005  79100S3V A400M1           3       140290 11  RP
> 10/02/2005  14:11
> 200510-ZA-005  79100S3V A400M1           3       140290 11  SS
> 10/02/2005  14:11
> 200510-ZA-005  79100S3V A400M1           3       140290 11  SS
> 10/02/2005  14:11
> 200510-ZA-005  79100S3V A400M1           3       140290 11  SS
> 10/02/2005  14:11
>
> As you can see, the first record is correct (it is the last record of
> the subfile).  The rest of the fields (up to the "SS") are all the
last
> record in the subfile.  Other than the "SS" field that varies, the
> remaining fields are all the same record.
>
> This is getting to the point of lunacy.
>
> Again, I thank everyone who has helped me thus far.
>
> Brian.
>
>
> -----Original Message-----
> From: Holden Tommy [mailto:Tommy.Holden@xxxxxxxxxxxxxxxxx]
> Sent: Thursday, October 13, 2005 3:18 PM
> To: RPG programming on the AS400 / iSeries
> Subject: RE: Printing a Subfile - Revisited
>
> I'm not sure you're stuck on the last record from following the
> thread....
>
> *some* of the detail data on the report does change per record...those
> are the same fields that are defined in your subfile.  The other
fields
> on your detail record should be as well else you'll have to move the
> data from the display fields to the print fields.
>
>
> Thanks,
> Tommy Holden
>
>
>
> -- 
> 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 thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.