2つの SFL を上下に2つ同時に表示するにはどのようにすればよいのだろうか?
下記のような表示を実現したい。
これは難しい問題ではない。ポイントは OVERLAYキーワードを使うことと
お互いの SFL の記述行が重なり合わないように記述するだけでよい。
下記にこの例でのサンプル・ソースを示す。
【 DSPF ソース】
A*%%TS SD 20060216 122451 QTR REL-V3R7M0 5716-PW1 A* 91/10/14 21:54:59 QUATTRO REL-R03M00 5728-PW1 A*-----------------------------------------------* A* サブファイル表示 SFLDSPFM * A* A* 商品マスター照会 A* A*-----------------------------------------------* A* 11:25:43 QUATTRO REL-R06M00 5714-UT1 A*%%EC A DSPSIZ(24 80 *DS3) A MSGLOC(24) A PRINT A*-----------------------------------------------* A R DSPHEAD A*-----------------------------------------------* A TEXT(' 初期画面 ') A CF03(03 ' 終了 ') A SETOF(99) A BLINK A CSRLOC(LIN POS) A 1 27' 商品マスター照会 ' A DSPATR(RI) A COLOR(PNK) A 2 2' 商品コード ' A STRSHCOD 10A B 2 15TEXT(' 商品コード ') A 11 15' 必要な項目を打鍵して実行 A して下さい。 ' A DSPATR(HI) A 23 2'F3= 終了 ' A COLOR(BLU) A LIN 3S 0H A POS 3S 0H A R SFREC01 SFL A TEXT(' SFL明細行 1') A*%%TS SD 19930612 144015 QUATTRO REL-V3R2M0 5738-PW1 A*------------------------------------------------* A 20 AO 99 SFLNXTCHG A GYO1 4A O 5 2TEXT(' № ') A SHCODE 10A O 5 7TEXT(' 商品コード ') A SHNAME 24O O 5 20TEXT(' 商品名 ') A SHTANK 7Y 0O 5 45TEXT(' 単価 ') A EDTCDE(K) A SHSCOD 4A O 5 56TEXT(' 品種コード ') A*------------------------------------------------* A R SFCTL01 SFLCTL(SFREC01) A TEXT(' SFL制御見出 1') A*------------------------------------------------* A OVERLAY A* SFLPAG :1 画面での表示行数 A* SFLSIZ :ナボホヲbモ 全体の大きさ A SFLSIZ(7) A SFLPAG(6) A 41 SFLDSPCTL A 42 SFLDSP A 43 SFLINZ A SFLRNA A 44 SFLCLR A 45 SFLEND(*MORE) A 46 SFLDLT A ROLLUP(14 ' 次頁 ') A ROLLDOWN(15 ' 前頁 ') A CF03(03 ' 終了 ') A CF12(12 ' 前画面 ') A SETOF(99) A BLINK A DMYFLD 1A O 1 72 A* 61 : IMPOSSIBLE TO ROLLUP A 61 ERRMSGID(EDT0411 QPDA/QEDTM A* 62 : IMPOSSIBLE TO ROLLDOWN A 62 ERRMSGID(EDT0410 QPDA/QEDTM A DSPREC1 4S 0H SFLRCDNBR(CURSOR) A TEXT('SFL 表示 ロテーn゙ № ') A 1 27' 商品マスター照会 ' A DSPATR(RI) A COLOR(PNK) A*( 見出しの項目 ) A 2 2' 商品コード ' A STRSHCOD 10A O 2 15TEXT(' 商品コード ') A*( 明細行の桁見出し ) A 4 2' № ' A DSPATR(HI) A 4 7' 商品コード ' A DSPATR(HI) A 4 20' 商品名 ' A DSPATR(HI) A 4 45' 単価 ' A DSPATR(HI) A 4 56' 品種コード ' A DSPATR(HI) A R SFREC02 SFL A TEXT(' SFL明細行 2') A*%%TS SD 19930612 144015 QUATTRO REL-V3R2M0 5738-PW1 A*------------------------------------------------* A 20 AO 99 SFLNXTCHG A GYO2 4A O 16 2TEXT(' № ') A HNSCOD 4A O 16 7TEXT(' 品種コード ') A HNSNAM 14A O 16 20TEXT(' 品種名 ') A*------------------------------------------------* A R SFCTL02 SFLCTL(SFREC02) A*%%TS SD 20060216 122451 QTR REL-V3R7M0 5716-PW1 A SFLSIZ(0007) A SFLPAG(0006) A TEXT(' SFL制御見出 2') A OVERLAY A 41 SFLDSPCTL A 42 SFLDSP A 43 SFLINZ A SFLRNA A 44 SFLCLR A 45 SFLEND(*MORE) A 46 SFLDLT A ROLLUP(14 ' 次頁 ') A ROLLDOWN(15 ' 前頁 ') A CF03(03 ' 終了 ') A CF12(12 ' 前画面 ') A SETOF(99) A BLINK A DMYFLD2 1A O 13 72 A 61 ERRMSGID(EDT0411 QPDA/QEDTM A 62 ERRMSGID(EDT0410 QPDA/QEDTM A DSPREC2 4S 0H SFLRCDNBR(CURSOR) A TEXT('SFL 表示 レコード № ') A 13 27' 品種マスター照会 ' A DSPATR(RI) A COLOR(PNK) A 15 2' № ' A DSPATR(HI) A 15 7' 品種コード ' A DSPATR(HI) A 15 20' 品種名 ' A DSPATR(HI) A 12 3' A A ' A DSPATR(UL) A*----------------------------------------------------* A R DSPEND01 A TEXT(' 機能キーの表示 ') A*----------------------------------------------------* A OVERLAY A CF03(03 ' 終了 ') A 23 2'F3= 終了 ' A COLOR(BLU) A 23 41'F12= 前画面 ' A COLOR(BLU)
【 RPG ソース 】
H DFTNAME(PGMID) DATEDIT(*YMD/) F********** 商品マスター照会 ************************************ FDSPSFL2FM CF E WORKSTN F SFILE(SFREC01:RRN1) F SFILE(SFREC02:RRN2) F INFDS(INFDS) FSHOHIN IF E K DISK FHINSHU IF E K DISK F***************************************************************** D DATADS E DS EXTNAME(SHOHIN) D INFDS DS D* TOPRRN: 今表示している ナボ、ホヲbモ の先頭の RRN D TOPRRN 378 379B 0 C*( 初期画面 ) C*----------------------------------------------------+ C START TAG C EXFMT DSPHEAD C*----------------------------------------------------+ C SETOFF 99 C*( CF03 )- 終了 C *IN03 IFEQ *ON C SETON LR C LR RETURN C END C*( 実行キー ) C* : KEYをファイルにセット C*----------------------------------------------------+ C SETKEY KLIST C KFLD SHCODE C*----------------------------------------------------+ C MOVEL STRSHCOD SHCODE C SETKEY SETLL SHOHIN C EXSR SFLCLR C* : ファイルの読み取り C Z-ADD 1 TOPRRN C EXSR READ1 C EXSR READ2 C Z-ADD 1 DSPREC1 C Z-ADD 1 DSPREC2 C*( サブ・ファイルの表示 ) C WRITE DSPEND01 C*----------------------------------------------------+ C DSPLY TAG C SETON 4142 C WRITE SFCTL02 C EXFMT SFCTL01 C SETOFF 4142 C*----------------------------------------------------+ C SETOFF 99 C*( CF03 )- 終了 C *IN03 IFEQ *ON C SETON LR C LR RETURN C END C* C*( CF12 )- 前画面 C *IN12 IFEQ *ON C SETOFF 12 C GOTO START C END C*( 実行キー ) C GOTO DSPLY C* C END TAG C****************************************************** C *INZSR BEGSR C****************************************************** C SETON 45 C ENDSR C****************************************************** C READ1 BEGSR C****************************************************** C 1 DO *HIVAL RRN1 4 0 C SETOFF 50 C READ SHOHIN 50 C*( 終り ) C *IN50 IFEQ *ON C SETON 91 C LEAVE C END C MOVE RRN1 GYO1 C*----------------------------------------------------+ C WRITE SFREC01 C*----------------------------------------------------+ C Z-ADD RRN1 DSPREC1 C END C REDEND1 ENDSR C****************************************************** C READ2 BEGSR C****************************************************** C *LOVAL SETLL HINSHU C 1 DO *HIVAL RRN2 4 0 C SETOFF 50 C READ HINSHU 50 C*( 終り ) C *IN50 IFEQ *ON C SETON 91 C LEAVE C END C MOVE RRN2 GYO2 C*----------------------------------------------------+ C WRITE SFREC02 C*----------------------------------------------------+ C Z-ADD RRN2 DSPREC2 C END C REDEND ENDSR C****************************************************** C SFLCLR BEGSR C****************************************************** C*( サブファイル の クリヤー ) C*----------------------------------------------------+ C SETON 44 C WRITE SFCTL01 C WRITE SFCTL02 C SETOFF 4491 C*----------------------------------------------------+ C ENDSR C****************************************************** C SFLDLT BEGSR C****************************************************** C*( サブファイル の削除 ) C*----------------------------------------------------+ C SETON 46 C WRITE SFCTL01 C WRITE SFCTL02 C SETOFF 46 C*----------------------------------------------------+ C ENDSR