前回で紹介したのは縦方向のスクロールであるが
横方向にスクロールというかスライドの機能も用意されている。
これはあまり馴染みが少なく紹介されている事例もないのではないかと
思われる。
↓ 見にくいですが月の表示の上に < >の横スクロールが表示されています。
[横スライドDSPF]
ソースはこちらから
0001.00 A*%%TS SD 20160219 163828 QTR REL-V6R1M0 5761-WDS 0002.00 A* 91/10/14 21:54:59 QUATTRO REL-R03M00 5728-PW1 0003.00 A*-----------------------------------------------* 0004.00 A* サブファイル表示 SFLDSPFM * 0005.00 A* 0006.00 A* 年間売上ヒストリー 0007.00 A* 0008.00 A*-----------------------------------------------* 0009.00 A* 11:25:43 QUATTRO REL-R06M00 5714-UT1 0010.00 A*%%EC 0011.00 A DSPSIZ(24 80 *DS3) 0012.00 A MSGLOC(24) 0013.00 A PRINT 0014.00 A*-----------------------------------------------* 0015.00 A R DSPHEAD 0016.00 A*-----------------------------------------------* 0017.00 A TEXT(' 初期画面 ') 0018.00 A*%%TS SD 19930612 135725 QUATTRO REL-V3R2M0 5738-PW1 0019.00 A CF03(03 ' 終了 ') 0020.00 A SETOF(99) 0021.00 A BLINK 0022.00 A CSRLOC(LIN POS) 0023.00 A 1 27' 年間売上ヒストリー ' 0024.00 A DSPATR(RI) 0025.00 A COLOR(PNK) 0026.00 A 2 2' 商品コード ' 0027.00 A STRCOD 10A B 2 15TEXT(' 商品コード ') 0028.00 A 11 15' 必要な項目を打鍵して実行キーを押 + 0029.00 A して下さい。 ' 0030.00 A DSPATR(HI) 0031.00 A 23 2'F3= 終了 ' 0032.00 A COLOR(BLU) 0033.00 A LIN 3S 0H 0034.00 A POS 3S 0H 0035.00 A R SFREC01 SFL 0036.00 A*%%TS SD 20160219 150907 QTR REL-V6R1M0 5761-WDS 0037.00 A TEXT(' SFL明細行 ') 0038.00 A 20 0039.00 AO 99 SFLNXTCHG 0040.00 A GYO 4A O 8 2TEXT(' № ') 0041.00 A* 03 DSPATR(UL) 0042.00 A SHCODE 10A O 8 7TEXT(' 商品コード ') 0043.00 A SHNAME 24O O 8 18TEXT(' 商品名 ') 0044.00 A*( *SCRSTR 横スクロールの開始 ) 0045.00 A URSU01 4Y 0O 8 45TEXT('1 月売上高 *SCRSTR') 0046.00 A EDTCDE(J) 0047.00 A URSU02 4Y 0O 8 53TEXT('2 月売上高 ') 0048.00 A EDTCDE(J) 0049.00 A URSU03 4Y 0O 8 61TEXT('3 月売上高 ') 0050.00 A EDTCDE(J) 0051.00 A*(* SCREND 横スクロールの終了 ) 0052.00 A URSU04 4Y 0O 8 69TEXT('4 月売上高 *SCREND') 0053.00 A EDTCDE(J) 0054.00 A R SFCTL01 SFLCTL(SFREC01) 0055.00 A*%%TS SD 20160219 163828 QTR REL-V6R1M0 5761-WDS 0056.00 A SFLSIZ(0013) 0057.00 A SFLPAG(0012) 0058.00 A TEXT(' SFL制御見出 ') 0059.00 A OVERLAY 0060.00 A 41 SFLDSPCTL 0061.00 A 42 SFLDSP 0062.00 A 43 SFLINZ 0063.00 A SFLRNA 0064.00 A 44 SFLCLR 0065.00 A 45 SFLEND(*MORE) 0066.00 A 46 SFLDLT 0067.00 A ROLLUP(14 ' 次頁 ') 0068.00 A ROLLDOWN(15 ' 前頁 ') 0069.00 A CF03(03 ' 終了 ') 0070.00 A CF12(12 ' 前画面 ') 0071.00 A CF19(19 ' 左 ') 0072.00 A CF20(20 ' 右 ') 0073.00 A SETOF(99) 0074.00 A BLINK 0075.00 A*( SFLEND(*MORE)... 続く / 終りの使用のために SFLMSG は 0076.00 A* 使用しません。 ) 0077.00 A DMYFLD 1A O 1 72 0078.00 A 61 ERRMSGID(EDT0411 QPDA/QEDTMSG 61) 0079.00 A 62 ERRMSGID(EDT0410 QPDA/QEDTMSG 62) 0080.00 A 63 ERRMSGID(QRY1902 QQRYMSG 63) 0081.00 A 64 ERRMSGID(QRY1903 QQRYMSG 64) 0082.00 A DSPREC 4S 0H SFLRCDNBR(CURSOR) 0083.00 A TEXT('SFL 表示 レコード № ') 0084.00 A LIN 3S 0H TEXT('カーソル 位置合せ - 行 ') 0085.00 A POS 3S 0H TEXT('カーソル 位置合せ - 桁 ') 0086.00 A 1 27' 年間売上ヒストリー ' 0087.00 A DSPATR(RI) 0088.00 A COLOR(PNK) 0089.00 A*( 明細行の桁見出し ) 0090.00 A 6 2' № ' 0091.00 A DSPATR(HI) 0092.00 A* エラー 標識 :61 - 69 0093.00 A 6 7' 商品コード ' 0094.00 A DSPATR(HI) 0095.00 A 6 20' 商品名 ' 0096.00 A DSPATR(HI) 0097.00 A 81 LBUTON 2Y 0B 5 42PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0098.00 A PSHBTNCHC(1 '<' CF19) 0099.00 A*( *SCRSTR 横スクロールの開始 ) 0100.00 A* 6 45' 1 月 ' 0101.00 A MON01 6A 6 45 0102.00 A TEXT('*SCRSTR') 0103.00 A DSPATR(HI) 0104.00 A* 6 53' 2 月 ' 0105.00 A MON02 6A 6 53 0106.00 A DSPATR(HI) 0107.00 A* 6 61' 3 月 ' 0108.00 A MON03 6A 6 61 0109.00 A DSPATR(HI) 0110.00 A*(* SCREND 横スクロールの終了 ) 0111.00 A* 6 69' 4 月 ' 0112.00 A MON04 6A 6 69 0113.00 A DSPATR(HI) 0114.00 A TEXT('*SCREND') 0115.00 A 82 RBUTON 2Y 0B 5 76PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0116.00 A PSHBTNCHC(1 '>>' CF20) 0117.00 A*( 見出しの項目 ) 0118.00 A R NOREC 0119.00 A TEXT(' MSG : レコードなし ') 0120.00 A*%%TS SD 19930612 144015 QUATTRO REL-V2R1M0 5738-PW1 0121.00 A OVERLAY 0122.00 A CF03(03 ' 終了 ') 0123.00 A 10 5'( 検索されて見つかったレコードが - 0124.00 A ない。 )' 0125.00 A DSPATR(HI) 0126.00 A 16 5' 処理を続けるために実行キーを押し - 0127.00 A なさい。 ' 0128.00 A DSPATR(HI) 0129.00 A*( SFLMSGKEY ) 0130.00 A R FMTMSG SFL SFLMSGRCD(24) 0131.00 A DMKEY SFLMSGKEY 0132.00 A DMPGMQ SFLPGMQ 0133.00 A 0134.00 A R FMTMSGC SFLCTL(FMTMSG) 0135.00 A OVERLAY 0136.00 A HELP 0137.00 A 78 SFLINZ 0138.00 A SFLPAG(1) 0139.00 A SFLSIZ(10) 0140.00 A SFLDSP SFLDSPCTL 0141.00 A 79 SFLEND 0142.00 A DMPGMQ SFLPGMQ 0143.00 A R DSPEND01 0144.00 A*%%TS SD 20160219 151550 QTR REL-V6R1M0 5761-WDS 0145.00 A TEXT(' 機能キーの表示 ') 0146.00 A OVERLAY 0147.00 A CF03(03 ' 終了 ') 0148.00 A 23 2'F3= 終了 ' 0149.00 A COLOR(BLU) 0150.00 A 23 19'F19= 左 ' 0151.00 A COLOR(BLU) 0152.00 A 23 35'F20= 右 ' 0153.00 A COLOR(BLU) 0154.00 A 23 55'F12= 前画面 ' 0155.00 A COLOR(BLU)
[解説]
左にスライド可能なときは
0097.00 A 81 LBUTON 2Y 0B 5 42PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0098.00 A PSHBTNCHC(1 '<' CF19)
によって標識81をオンにして左ボタンを使用可能にする。
右にスライド可能なときは
0115.00 A 82 RBUTON 2Y 0B 5 76PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0116.00 A PSHBTNCHC(1 '>>' CF20)
によって右ボタンを使用可能に制御する。
[横スライドRPG]
ソースはこちらから
0001.00 H DFTNAME(SMP107) DATEDIT(*YMD/) 0002.00 F********** 売上ヒストリー ************************************** 0003.00 FSMP107FM CF E WORKSTN 0004.00 F SFILE(SFREC01:RRN1) 0005.00 F INFDS(INFDS) 0006.00 FSHOHIN IF E K DISK 0007.00 FNENKAN IF E K DISK 0008.00 FHINSHU IF E K DISK 0009.00 F***************************************************************** 0010.00 D SAVDTA S 1 DIM(1024) 0011.00 D* 読み取り ファイル の FORMAT を外部 DS として READ 0012.00 D DATADS E DS EXTNAME(SHOHIN) 0013.00 D DSPDTA 1 1024 0014.00 D DIM(1024) 0015.00 D* 0016.00 D* -( サブ・ファイル の ファイル 情報 )- 0017.00 D* 0018.00 D INFDS DS 0019.00 D*( カーソル の行と桁の取り込み ) 0020.00 D LINE 370 371B 0 0021.00 D* TOPRRN: 今表示している サブ・ファイル の先頭の RRN 0022.00 D TOPRRN 378 379B 0 0023.00 D* BRRN : サブファイル の レコードNO ( 2 進数 ) 0024.00 D BRRN 376 377B 0 0025.00 0026.00 D DS 0027.00 D NHSU 1 48 0 DIM(12) 0028.00 D NHSU01 1 4 0 0029.00 D NHSU02 5 8 0 0030.00 D NHSU03 9 12 0 0031.00 D NHSU04 13 16 0 0032.00 D NHSU05 17 20 0 0033.00 D NHSU06 21 24 0 0034.00 D NHSU07 25 28 0 0035.00 D NHSU08 29 32 0 0036.00 D NHSU09 33 36 0 0037.00 D NHSU10 37 40 0 0038.00 D NHSU11 41 44 0 0039.00 D NHSU12 45 48 0 0040.00 0041.00 D DS 0042.00 D URSU 1 16 0 DIM(4) 0043.00 D URSU01 1 4 0 0044.00 D URSU02 5 8 0 0045.00 D URSU03 9 12 0 0046.00 D URSU04 13 16 0 0047.00 0048.00 D*( WORK 日付 YYMMDD データ 構造 ) 0049.00 D DATEDS DS 0050.00 D SRY 1 2 0 0051.00 D SRYMD 1 8 0 0052.00 D YYMMDD 3 8 0 0053.00 D YYMM 3 6 0 0054.00 D MMDD 5 8 0 0055.00 D YY 3 4 0 0056.00 D MM 5 6 0 0057.00 D DD 7 8 0 0058.00 0059.00 D DS 0060.00 D MONR 1 24 DIM(4) 0061.00 D MON01 1 6 0062.00 D MON02 7 12 0063.00 D MON03 13 18 0064.00 D MON04 19 24 0065.00 0066.00 D YEAR S 6A DIM(12) 0067.00 D N S 4S 0 0068.00 D M S 4S 0 0069.00 D ST S 4S 0 INZ(1) 0070.00 0071.00 C*( 初期画面 ) 0072.00 C GOTO STRRED 0073.00 C*----------------------------------------------------+ 0074.00 C START TAG 0075.00 C EXFMT DSPHEAD 0076.00 C*----------------------------------------------------+ 0077.00 C SETOFF 99 0078.00 C*( CF03 )- 終了 0079.00 C *IN03 IFEQ *ON 0080.00 C SETON LR 0081.00 C LR RETURN 0082.00 C GOTO START 0083.00 C END 0084.00 C*( 実行キー ) 0085.00 C* : KEYをファイルにセット 0086.00 C*----------------------------------------------------+ 0087.00 C SETKEY KLIST 0088.00 C KFLD STRCOD 0089.00 C*----------------------------------------------------+ 0090.00 C*( *LOVAL のセット ) 0091.00 C STRRED TAG 0092.00 C MOVE *BLANKS SHCODE 0093.00 C SETKEY SETLL SHOHIN 0094.00 C EXSR SFLCLR 0095.00 C* : ファイルの読み取り 0096.00 C Z-ADD 1 TOPRRN 0097.00 C EXSR READ 0098.00 C Z-ADD 1 DSPREC 0099.00 C*( サブ・ファイルの表示 ) 0100.00 C WRITE DSPEND01 0101.00 C*----------------------------------------------------+ 0102.00 C DSPLY TAG 0103.00 C SETON 4142 0104.00 C EXFMT SFCTL01 0105.00 C SETOFF 4142 0106.00 C*----------------------------------------------------+ 0107.00 C SETOFF 99 0108.00 C*( CF03 )- 終了 0109.00 C *IN03 IFEQ *ON 0110.00 C SETON LR 0111.00 C LR RETURN 0112.00 C ENDIF 0113.00 C* 0114.00 C*( CF12 )- 前画面 0115.00 C *IN12 IFEQ *ON 0116.00 C SETOFF 12 0117.00 C GOTO START 0118.00 C ENDIF 0119.00 C*( CF19 )- 左 0120.00 C *IN19 IFEQ *ON 0121.00 C SETOFF 19 0122.00 C ST IFGT 4 0123.00 C SUB 4 ST 0124.00 C GOTO STRRED 0125.00 C ELSE 0126.00 C SETON 6399 0127.00 C GOTO DSPLY 0128.00 C ENDIF 0129.00 C ENDIF 0130.00 C*( CF20 )- 右 0131.00 C *IN20 IFEQ *ON 0132.00 C SETOFF 20 0133.00 C ST IFGT 8 0134.00 C SETON 6499 0135.00 C GOTO DSPLY 0136.00 C ELSE 0137.00 C ADD 4 ST 0138.00 C GOTO STRRED 0139.00 C ENDIF 0140.00 C ENDIF 0141.00 C*( ROLL UP )- 次ページ 0142.00 C *IN14 IFEQ *ON 0143.00 C EXSR ROLLUP 0144.00 C GOTO DSPLY 0145.00 C ENDIF 0146.00 C* 0147.00 C*( 実行キー ) 0148.00 C GOTO DSPLY 0149.00 C* 0150.00 C END TAG 0151.00 C****************************************************** 0152.00 C *INZSR BEGSR 0153.00 C****************************************************** 0154.00 C* 初期 サイクル のみの実行 0155.00 C*( サブファイル END-FLAG を ON にする ) 0156.00 C SETON 45 0157.00 C*( DS の数字 フィールド の クリヤー ) 0158.00 C CLEAR SFREC01 0159.00 C MOVE 12 GYOSU 2 0 行数 0160.00 C MOVE 08 STRGYO 2 0 開始行№ 0161.00 C MOVE 19910101 SRYMD 0162.00 C MOVE 910101 DATE 6 0 0163.00 C SETON 11 0164.00 C SETOFF 11 0165.00 C*( 年月の見出しを作成する ) 0166.00 C 1 DO 12 N 0167.00 C MOVE N MON 2 0168.00 C IF %SUBST(MON:1:1) = '0' 0169.00 C MOVEL ' ' MON 0170.00 C ENDIF 0171.00 C EVAL YEAR(N) = MON + ' 月 ' 0172.00 C ENDDO 0173.00 C ENDSR 0174.00 C****************************************************** 0175.00 C READ BEGSR 0176.00 C****************************************************** 0177.00 C MOVE *BLANKS EOF 1 0178.00 C SETOFF 5945 0179.00 C*( データ・ベースの検索 ) 0180.00 C*----------------------------------------------------+ 0181.00 C* EQLKEY KLIST | 0182.00 C*----------------------------------------------------+ 0183.00 C RTNRED TAG 0184.00 C* 0185.00 C TOPRRN ADD GYOSU ENDRRN 4 0 0186.00 C SUB 1 ENDRRN 0187.00 C*( 年月見出しをセットする ) 0188.00 C Z-ADD ST M 0189.00 C 1 DO 4 N 0190.00 C EVAL MONR(N) = YEAR(M) 0191.00 C ADD 1 M 0192.00 C ENDDO 0193.00 C*( 左右ボタンの制御 ) 0194.00 C SETOFF 8182 0195.00 C ST IFGT 4 0196.00 C SETON 81 0197.00 C ENDIF 0198.00 C ST IFLT 9 0199.00 C SETON 82 0200.00 C ENDIF 0201.00 C* 0202.00 C TOPRRN DO ENDRRN RRN1 4 0 0203.00 C AGAIN TAG 0204.00 C SETOFF 50 0205.00 C READ SHOHIN 50 0206.00 C*( 終り ) 0207.00 C *IN50 IFEQ '1' 0208.00 C MOVE 'E' EOF 0209.00 C SETOFF 1129 0210.00 C SETON 45 0211.00 C GOTO REDEND 0212.00 C ELSE 0213.00 C*( CHECK : READ した レコード の チエック ) 0214.00 C EXSR CHECK 0215.00 C*( 行 NO に入れる ) 0216.00 C MOVE RRN1 GYO 0217.00 C*( サブファイル へ更新 ) 0218.00 C*----------------------------------------------------+ 0219.00 C WRITE SFREC01 0220.00 C*----------------------------------------------------+ 0221.00 C N59 Z-ADD RRN1 DSPREC 0222.00 C N59 SETON 59 0223.00 C Z-ADD RRN1 LSTRRN 4 0 0224.00 C END 0225.00 C END 0226.00 C REDEND TAG 0227.00 C ENDSR 0228.00 C****************************************************** 0229.00 C CHECK BEGSR 0230.00 C****************************************************** 0231.00 C*( 明細チエック ) 0232.00 C Z-ADD 0 NHSU 0233.00 C SETOFF 90 0234.00 C SHCODE CHAIN NENKAN 90 0235.00 C* 0236.00 C SHSCOD CHAIN HINSHU 99 0237.00 C*( 年月のデータをセットする ) 0238.00 C Z-ADD ST M 0239.00 C 1 DO 4 N 0240.00 C EVAL URSU(N) = NHSU(M) 0241.00 C ADD 1 M 0242.00 C ENDDO 0243.00 C CHKEND ENDSR 0244.00 C****************************************************** 0245.00 C SFLCLR BEGSR 0246.00 C****************************************************** 0247.00 C*( サブファイル の クリヤー ) 0248.00 C*----------------------------------------------------+ 0249.00 C SETON 44 0250.00 C WRITE SFCTL01 0251.00 C SETOFF 44 0252.00 C*----------------------------------------------------+ 0253.00 C ENDSR 0254.00 C****************************************************** 0255.00 C INZVAR BEGSR 0256.00 C****************************************************** 0257.00 C*( 初期値 ) 0258.00 C ENDSR 0259.00 C****************************************************** 0260.00 C ROLLUP BEGSR 0261.00 C****************************************************** 0262.00 C EOF IFEQ 'E' 0263.00 C SETON 6199 0264.00 C 99 Z-ADD LSTRRN DSPREC 0265.00 C 99 GOTO UPEND 0266.00 C END 0267.00 C ENDRRN ADD 1 TOPRRN 0268.00 C EXSR READ 0269.00 C UPEND ENDSR
[解説]
左ボタンと右ボタンによって月とデータの表示を制御している。