|
Hii everyone..after going through the midrenge.com, i have realised that this problem (error) is occurring only for a particular set of data.. i.e. the error does not occur for all cases of position to . only when i do a page-up/page-down when i reach a particular set of data it crashes and gives me the error looks like i am loading a character less than x'40' in the display file. but how do i check tht.??
Data sent to device QPADEV001H not valid. Negative response code is 1005012D. Permanent I/O error occurred in file DERWIND. Function check. RNX1251 unmonitored by DERWINR at statement 0000000084, instruction X'0000'. thanx & regards Derek
From: "derek gonsalves" <d_gons@xxxxxxxxxxx> Reply-To: RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> To: rpg400-l@xxxxxxxxxxxx Subject: RE: single page subfile- position to problem... Date: Wed, 11 Oct 2006 18:11:57 +0000 Hi im posting my actual DDS and rpg program..(i am using it in a window subfile) Thanx N regards Derek ---------------------------------------------------------------------------------------------------------------------------------------- DDS for window subfile ---------------------------------------------------------------------------------------------------------------------------------------- A A A DSPSIZ(24 80 *DS3) A R WINSFL SFL A A D#OPT 1A B 5 2VALUES('X' ' ') A D#TRNM 50A B 5 4 A D#ISRC 10A O 5 55 A H#PROD 15A H A H#ARTS 60A H A H#ISRC 20A H A R WINCTL SFLCTL(WINSFL) A*%%TS SD 20061011 165430 DEREK REL-V4R4M0 5769-PW1 A CA03(03 'F3=Exit') A ROLLUP(75) A ROLLDOWN(76) A 50 SFLDSP A 51 SFLDSPCTL A 55 SFLCLR A 90 SFLEND(*MORE) A SFLSIZ(0008) A SFLPAG(0008) A WINDOW(5 12 15 64)A WDWBORDER((*COLOR BLU) (*DSPATRRI)- A (*CHAR ' ')) A RRN1 4S 0H SFLRCDNBR A 4 2'X' A COLOR(WHT) A D#RSCD 60A B 3 4 A 4 4'Track Name' A R DUMMY A*%%TS SD 20061011 165430 DEREK REL-V4R4M0 5769-PW1 A ASSUME A 13 2' ' A R FOOTER A*%%TS SD 20061011 165430 DEREK REL-V4R4M0 5769-PW1 A OVERLAY A WINDOW(WINCTL)A WDWBORDER((*COLOR BLU) (*DSPATRRI)- A (*CHAR ' ')) A 14 1'F3=Exit' A COLOR(BLU) ------------------------------------------------------------------------------------------------------------------------------------------ rpg program starts here ----------------------------------------------------------------------------------------------------------------------------------------- HOPTION(*NODEBUGIO) ******************** ** FILE DECLARATIONS ******************** FLCDETLL3 IF E K DISK FDERWIND CF E WORKSTN F SFILE(WINSFL:RRN1) F INFDS(INFO) ****************** ** DATA STRUCTURES ****************** DINFO DS DCFKEY 369 369 DSVLTRCK S LIKE(LDTRNM) DSVLPROD S LIKE(LDPROD) DEXIT C CONST(X'33') DCANCEL C CONST(X'3C') DENTER C CONST(X'F1') DROLLUP C CONST(X'F5') DROLLDN C CONST(X'F4') D*SFLPAG C CONST(8) DSFLPAG S 3 0 DSFLPAG_PLUS_1 C CONST(9) D*RRN1 S 3 0 DW@FLAG S 1 *************** ** MAIN ROUTINE *************** C EXSR $SFLCLR C EXSR $SFLBLD C DOU (CFKEY = EXIT) C** WRITE FOOTER C EVAL *IN51 = *ON C EXFMT WINCTL C EVAL *IN51 = *OFF C EXSR $CHECK C IF W@FLAG = 'Y' C LEAVE C ENDIF C SELECT C WHEN (CFKEY = ENTER) AND (D#RSCD <>*BLANKS) C D#RSCD SETLL LCDETL1 C EXSR $SFLCLR C EXSR $SFLBLD C CLEAR D#RSCD C* WHEN (CFKEY = ROLLUP) AND (NOT *IN90) C WHEN (*IN75 = *ON) AND (NOT *IN90) C EXSR $SFLCLR C EXSR $SFLBLD C* WHEN (CFKEY = ROLLDN) AND (*IN50 = *ON) C WHEN (*IN76 = *ON) AND (*IN50 = *ON) C EXSR $GOBACK C EXSR $SFLCLR C EXSR $SFLBLD C ENDSL C ENDDO C EVAL *INLR = *ON ********************* ** $SFLCLR SUBROUTINE ********************* C $SFLCLR BEGSR C EVAL RRN1 = 0 C EVAL *IN55 = *ON C WRITE WINCTL C EVAL *IN55 = *OFF C EVAL *IN50 = *ON C #SFLCLR ENDSR ********************* ** $SFLBLD SUBROUTINE ********************* C $SFLBLD BEGSR C EVAL SFLPAG = 8 C DO SFLPAGC READ LCDETL1 90C IF *IN90 = *ON C LEAVE C ENDIF C* IF LDCNFG <> 'CD' AND LDCNFG <> 'VD'C* READ LCDETL1 90C*** EVAL SFLPAG = SFLPAG + 1 C* ITER C* ENDIF C EXSR $MOVSCR C EVAL RRN1 = RRN1 +1 C WRITE WINSFL ** SAVE THE FIRST RECORD DATA C IF RRN1 = 1 C EVAL SVLTRCK = LDTRNM C EVAL SVLPROD = LDPROD C ENDIF C ENDDO C IF RRN1 = 0 C EVAL *IN50 = *OFF C ELSE C EVAL *IN50 = *ON C ENDIF C #SFLBLD ENDSR ********************* ** $GOBACK SUBROUTINE ********************* C $GOBACK BEGSR C SAVKEY SETLL LCDETL1 C* SVLTRCK SETLL LCDETL1 C DO SFLPAG_PLUS_1C READP LCDETL1 90C IF *IN90 = *ON C *LOVAL SETLL LCDETL1 C LEAVE C ENDIF C ENDDO C #GOBACK ENDSR ********************* ** $MOVSCR SUBROUTINE ********************* C $MOVSCR BEGSR C EVAL D#TRNM = LDTRNM C EVAL D#ISRC = LDISRC C EVAL H#ISRC = LDISRC C EVAL H#PROD = LDPROD C EVAL H#ARTS = LDARTS C #MOVSCR ENDSR ******************** ** $CHECK SUBROUTINE ******************** C $CHECK BEGSR C EVAL W@FLAG = 'N'C READC WINSFL 81C IF *IN81 = *OFF AND D#OPT = 'X' C EVAL T#TRNM = D#TRNM C EVAL T#ISRC = H#ISRC C EVAL T#PROD = H#PROD C EVAL T#ARTS = H#ARTS C EVAL W@FLAG = 'Y' C ENDIF C #CHECK ENDSR ******************** ** *INZSR SUBROUTINE ******************** C *INZSR BEGSR C SAVKEY KLIST C KFLD SVLTRCK C KFLD SVLPROD C *ENTRY PLIST C PARM T#TRNM 60 C PARM T#ISRC 20 C PARM T#PROD 15 C PARM T#ARTS 35 C ENDSR >From: "Jonathan Mason" <jonathan.mason@xxxxxxxxxxxxxxxx> >Reply-To: RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> >To: "'RPG programming on the AS400 / iSeries'" <rpg400-l@xxxxxxxxxxxx> >Subject: RE: single page subfile- position to problem... >Date: Wed, 11 Oct 2006 14:09:07 +0100 > >Can you post the DDS for the display file too? What is the value of the>field defined in the DDS with the SFLRCDNBR keyword? If the value of this >field doesn't match a RRN for the subfile then you'll get the I/O error you>describe. You would also get that error if the subfile was empty and >SFLDSP >is set. > >Jonathan > >-----Original Message----->From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]>On Behalf Of derek gonsalves >Sent: 11 October 2006 13:14 >To: RPG400-L@xxxxxxxxxxxx >Subject: single page subfile- position to problem... > >hii evrbody... > >i have an issue with the single page subfile loading.. >the page- up and page-dwn functions are working fine.. bu when i enter a >value in the position to field the subfile gets loaded from that value >onwards .. but if i do a pageup(rolldown) then the program crashes. gives >me >an error as --- Permanent input output error occured in the display file > >i tried debugging .. and the values are being written into the subfile>record format .. but during the Exfmt of the subfile control .. the program>crashes... > >my rpg code has been written on the same lines as follows.... except for >changes in field names and file names.. but i have followed the same >structure and logic. >(this reference code was obtained from Midrange Programmer - Back to >basics) > > >Any help will be appreciated .... > >Thanx nd Regards > >Derek > *================================================================ > * > * To compile: > * > * CRTRPGPGM PGM(XXX/PAGEATATIMERG) >SRCFILE(XXX/QRPGLESRC) > * > * rpgle program for single page subfile > * > >*======================================================================= > Fsfl003df cf e workstn > F sfile(sfl1:rrn1) > F infds(info) > Fsfl001lf if e k disk > > Dinfo ds > D cfkey 369 369 > > Dsvlnam S like(dblnam) > Dsvfnam S like(dbfnam) > > Dexit C const(X'33') > Dcancel C const(X'3C') > Denter C const(X'F1') > Drollup C const(X'F5') > Drolldn C const(X'F4') > Dsflpag C const(15) > Dsflpag_plus_1 C const(16) > * > ***************************************************************** > * Main Routine > ***************************************************************** > * > * Clear then build the initial subfile > * > C exsr clrsfl > C exsr sflbld > * > * Do loop to process the subfile until F3 or F12 is pressed > * > C dou (cfkey = exit) or (cfkey = cancel) > * > C write fkey1 > C exfmt sf1ctl > * > * Process position to information entered by the user, then clear > * and rebuild the subfile. Lastly, clear the position to field > * > C select> C when (cfkey = enter) and (ptname <> *blanks)> C ptname setll sfl001lf > C exsr clrsfl > C exsr sflbld > C clear ptname > * > * Clear and rebuild the subfile when user pages down (rolls up) > * > C when (cfkey = rollup) and (not *in90) > C exsr clrsfl > C exsr sflbld > * > * Position data file to one page before current subfile data, then > * clear and rebuild the subfile to show that previous page > * > C when (cfkey = rolldn) and (not *in32) > C exsr goback > C exsr clrsfl > C exsr sflbld > > C endsl > C enddo > > C eval *inlr = *on > * > ***************************************************************** > * CLRSFL - Clear the subfile > ***************************************************************** > * > C clrsfl begsr > * > * Clear relative record numbers and subfile > * > C eval rrn1 = *zero > C eval *in31 = *on > C write sf1ctl > C eval *in31 = *off > C eval *in32 = *off > > C endsr > * > ***************************************************************** > * SFLBLD - Build the List > ***************************************************************** > * > C sflbld begsr > * > * Load the subfile with one page of data or until end-of-file > * > C do sflpag > C read sfl001lf >90 > > C if *in90 > C leave > C endif > > C eval rrn1 = rrn1 + 1 > C write sfl1 > * > * save first record data > * > C if rrn1 = 1 > C eval svlnam = dblnam > C eval svfnam = dbfnam > C endif > > C enddo > * > * If no records added to subfile, do not display it > * > C if rrn1 = *zero > C eval *in32 = *on > C endif > * > C endsr > * > ***************************************************************** > * GOBACK - page backward one page > ***************************************************************** > * > C goback begsr > * > * Position data file to first record of subfile > * > C savkey setll sfl001lf > * > * Re-position pointer in file for rolling backward. If beginning> * of file hit before done, set pointer to first record of data file.> * > C do sflpag_plus_1 > C readp sfl001lf > C if %eof > C *loval setll sfl001lf > C leave > C endif > C enddo > * > C endsr > * > ***************************************************************** > * KEYLISTS > ***************************************************************** > * > C savkey klist > C kfld svlnam > C kfld svfnam > > >-->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.