Ü Load-All Subfile
·
In Load-All subfile all the records
are written to the subfile buffer at once and then the data in the subfile
loaded from the buffer.
·
In this case SFLSIZ should be at-least
1 greater than the SFLPAG.
·
If we are writing more records in
the subfile buffer than the SFLSIZ declared and SFLSIZ<9999, then the SFLSIZ
is extended to accommodate all records till the size of 9999. 9999 is the
buffer limit.
·
In this case PAGEUP AND
PAGEDOWN is taken care by system. SFLPAG should be less than SFLSIZ.
·
In load-All subfile if we do
PAGEDOWN and then press ENTER on the page, by-default ENTER bring the display
screen to the very first page irrespective of the current page number. To avoid
this situation, we use file information data structure to get the current page
RRN number and pass it to the SFLRCDNBR hidden field defined in the display
file DDS.
Ü Load all subfile Example
Physical
file used in the program = MASTER
ORG CODE ACC NUMBER CURRENCY OPEN DATE PARTY NUM A/C STS ENT STS VER STS AUT STS REC STS TIMESTAMP
190 A00000000001 EUR 20120605 P00000000001 2 1 1 1 2 2012-06-05-03.07.34.011000
190 A00000000002 USD 20120605 P00000000002 3 1 1 1 2 2012-06-05-03.07.49.859000
190 A00000000004 EUR 1072012 P00000000004 2 2 1 1 2 0001-01-01-00.00.00.000000
190 A00000000005 USD 6072011 P00000000005 1 1 1 1 1 0001-01-01-00.00.00.000000
191 A00000000006 USD 9082012 P00000000006 2 1 1 1 1 0001-01-01-00.00.00.000000
191 A00000000007 EUR 9082000 P00000000007 2 1 1 1 1 0001-01-01-00.00.00.000000
191 A00000000008 USD 9082007 P00000000008 1 1 1 1 1 0001-01-01-00.00.00.000000
192 A00000000009 TRY 6092000 P00000000009 2 2 2 2 2 0001-01-01-00.00.00.000000
192 A00000000010 INR 1012012 P00000000001 2 1 1 1 2 0001-01-01-00.00.00.000001
192 A00000000011 INR 1012022 P00000000012 1 2 1 1 2 0001-01-01-00.00.00.000021
192 A00000000012 INR 1012022 P00000000002 2 2 1 1 2 0001-01-01-00.00.00.000011
******** End of data ********
Display
file used in the program = LOAD_DSP
Columns . . . : 1 80 Browse AMIT/QRPGLESRC
SEU==> LOAD_DSP
FMT DP .....AAN01N02N03T.Name++++++RLen++TDpBLinPosFunctions+++++++++++++++++++++++++++
*************** Beginning of data *****************************************************
0001.00 A DSPSIZ(24 80 *DS3)
0002.00 A CA03(03 'EXIT')
0003.00 A R HEADER
0004.00 A OVERLAY
0005.00 A 1 3USER
0006.00 A DSPATR(HI)
0007.00 A COLOR(BLU)
0008.00 A 1 71DATE
0009.00 A EDTCDE(Y)
0010.00 A DSPATR(HI)
0011.00 A COLOR(BLU)
0012.00 A 2 71TIME
0013.00 A DSPATR(HI)
0014.00 A COLOR(BLU)
0015.00 A 1 23'DISPLAY THE LOADALL SUBFILE'
0016.00 A DSPATR(HI)
0017.00 A COLOR(BLU)
0018.00 A R FOOTER
0019.00 A OVERLAY
0020.00 A 23 7'F3'
0021.00 A DSPATR(RI)
0022.00 A COLOR(WHT)
0023.00 A 23 10'= EXIT'
0024.00 A 23 26'F12'
0025.00 A DSPATR(HI)
0026.00 A DSPATR(RI)
0027.00 A 23 30'=PREVIOUS'
0028.00 A R EXPD_SFL SFL
0029.00 A 56 SFLNXTCHG
0030.00 A S_ORG 3S 0O 8 12
0031.00 A S_ACC 12A O 8 28
0032.00 A S_CCY 3A O 8 49
0033.00 A R EXPD_CTL SFLCTL(EXPD_SFL)
0034.00 A OVERLAY
0035.00 A 52 SFLDSP
0036.00 A 51 SFLDSPCTL
0037.00 A 50 SFLCLR
0038.00 A 45 SFLEND(*MORE)
0039.00 A SFLSIZ(0006)
0040.00 A SFLPAG(0005)
0041.00 A S_RECNO 4S 0H SFLRCDNBR
0042.00 A 6 12'ORG CODE'
0043.00 A 6 27'ACCOUNT NUMBER'
0044.00 A 6 48'CURRENCY'
****************** End of data ******************************************************
MAIN PROGRAM
Columns . . . : 6 80 Browse AMIT/QRPGLESRC
SEU==> LOAD_RPGLE
FMT * *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8
*************** Beginning of data ****************************************************
0001.00
0002.00 HDEBUG(*YES)
0003.00 HOPTION(*NODEBUGIO)
0004.00 *
0005.00 FMASTER IF E K DISK
0006.00 FLOAD_DSP CF E WORKSTN
0007.00 F SFILE(EXPD_SFL:RRN)
0008.00 F INFDS(infds)
0009.00 *
0010.00 Dinfds DS
0011.00 DRECNO 378 379I 0
0012.00 *____________________________________________________________________
0013.00 *______ In load-All subfile if we do PAGEDOWN and then press ENTER on
0014.00 *______ the page, by-default ENTER bring the display screen to the very
0015.00 *______ first page irrespective of the current page number. To avoid
0015.01 *______ this situation, we use file information data structure to get the
0015.02 *______ the current page RRN number and pass it to the SFLRCDNBR hidden
0015.02 *______ field defined in the display file DDS.
0016.00 *____________________________________________________________________
0017.00 C *IN03 DOWEQ *OFF
0018.00 C EXSR MAIN
0019.00 C EXSR DSPSFL
0020.00 C ENDDO
0021.00 C SETON LR
0022.00 C*
0023.00 C*_____________________________________________
0024.00 C*____________MAIN SUBROUTINE BEGINS HERE______
0025.00 C*_____________________________________________
0026.00 C MAIN BEGSR
0027.00 C* _ _ _ PAGE UP / PAGE DOWN HANDLING NOT NEEDED_ _
0028.00 C ENDSR
0029.00 C*_________________________________________________
0030.00 C*_________________________________________________
0031.00 C*_______________CLEAR SUBFILE_____________________
0032.00 C*_________________________________________________
0033.00 C CLRSFL BEGSR
0034.00 C EVAL RRN=0
0035.00 C SETON 50
0036.00 C WRITE EXPD_CTL
0037.00 C SETOFF 50
0038.00 C ENDSR
0039.00 C*_________________________________________________
0040.00 C*_______________FIRST FUBROUTINE__________________
0041.00 C*_________________________________________________
0042.00 C*
0043.00 C *INZSR BEGSR
0044.00 C SETOFF 505152
0045.00 C SETOFF 45
0046.00 C Z-ADD *ZEROS RRN 4 0
0047.00 C EVAL S_RECNO=1
0048.00 C EXSR CLRSFL
0049.00 C EXSR FILSFL
0050.00 C EXSR DSPSFL
0051.00 C ENDSR
0052.00 C*_________________________________________________
0053.00 C*_______________FILL SUBFILE__________________
0054.00 C*_________________________________________________
0055.00 C*
0056.00 C FILSFL BEGSR
0057.00 C SETOFF 45
0058.00 C DOU %EOF(MASTER)
0059.00 C READ(N) REC1
0060.00 C IF %EOF(MASTER)
0061.00 C EVAL *IN45=%EOF(MASTER)
0062.00 C LEAVESR
0063.00 C ENDIF
0064.00 C EVAL S_ORG=ORG
0065.00 C EVAL S_ACC=ACC
0066.00 C EVAL S_CCY=CCY
0067.00 C ADD 1 RRN
0068.00 *- - Don't write to subfile buffer if RRN>9999
0069.00 C IF RRN>9999
0070.00 C LEAVE
0071.00 C ENDIF
0072.00 C WRITE EXPD_SFL
0073.00 C ENDDO
0074.00 C ENDSR
0075.00 C*_________________________________________________
0076.00 C*
0077.00 C DSPSFL BEGSR
0078.00 C SETON 5152
0079.00 * - - - Handle session device error if RRN<=0 i.e. no data in the buffer
0080.00 C IF RRN<=0
0081.00 C SETOFF 52
0082.00 C ENDIF
0083.00 *
0084.00 C WRITE HEADER
0085.00 C WRITE FOOTER
0086.00 C EXFMT EXPD_CTL
0087.00 C EVAL S_RECNO=RECNO
0088.00 C SETOFF 5152
0089.00 C ENDSR
****************** End of data *****************************************************
OUTPUT
AMIT DISPLAY THE LOADALL SUBFILE 2/21/13
08:07:59
ORG CODE ACCOUNT NUMBER CURRENCY
190 A00000000001 EUR
190 A00000000002 USD
190 A00000000004 EUR
190 A00000000005 USD
191 A00000000006 USD
More...
F3 = EXIT F12 =PREVIOUS