サブ・ファイルによるスクロール・バーのロールアップ/ダウンの操作は2.0では
スライダー・コントロールに変更されました。
このスクロール・バーをスクロール・バー2.0と呼びます。
5250エミュレータ上でのロールアップ/ダウンの操作キー・ボードのPageDown/Upキーを
押して表示もページ単位にしか変わりませんでしたが
スクロール・バー2.0ではエンド・ユーザーはスライダー・コントロールをつまんで
データを滑らかにスクロールさせることができます。
特にモバイル画面上ではスワイプによってデータをスクロールさせることができますので
操作も簡単でより自然なデータ遷移を行うことができます。
プログラマーとしてはDSPFのDDS記述やプログラムのコーディングはほとんど変わるところが
ありません。
プログラムも簡単でありそれでいて滑らかなスクロールを実現しています。
DDS記述によるスクロール・バーの定義
: A R SFCTL01 SFLCTL(SFREC01) A SFLSIZ(0016) A SFLPAG(0015) A TEXT(' SFLコントロール *SCRBAR') A OVERLAY : A 45 SFLEND(*MORE) A 61 SFLMSGID(EDT0411 QPDA/QEDTMSG 61) A 62 SFLMSGID(EDT0410 QPDA/QEDTMSG 62) :
[解説]
サブ・ファイル・コントロール・レコードの
- TEXT内に「*SCRBAR」の文字列を記述しておいてください。
これでAutoWebはスクロール・バー2.0と認識します。 - SFLPAGとは画面に表示される行数です。SFLSIZをSFLPAG より 1大きな数として定義しておくと
サブ・ファイル・レコードはi5/OSによって自動拡張されます。
プログラマーがあらかじめサブ・ファイルの最大行数を想定する必要はありません。 - 上記のようにSFLMSGIDを定義してROLLUP不可のときは*IN61をプログラム内でSETONして
エラー・メッセージ EDT0411 を表示するようにしてください。
AutoWebのJavaScriptはこのエラー・メッセージを検知して判断します。
[サンプル: コード・マスターの照会]
[DSPF: MNYSCRFM : コード・マスターの照会] http://218.44.135.18/QSYS.LIB/QTRSRC.LIB/QDSPSRC.FILE/MNYSCRFM.MBR
-------------------------------------------------------------------------------------------------------------- 0001.00 A*%%TS SD 20221010 192642 QTR REL-V6R1M0 5761-WDS 0002.00 A*************************************************************** 0003.00 A* MNYSCRFM : コード・マスターの照会 0004.00 A* QTRSRC/QDSPSRC(MNYSCRFM) 0005.00 A* 使用目的 : 照会 (*INQUIRY) 0006.00 A* 作成日 : 2022/10/10 19:11:45 0007.00 A* 作成者 : QTR 0008.00 A*************************************************************** 0009.00 A*%%EC 0010.00 A DSPSIZ(24 80 *DS3) 0011.00 A MSGLOC(24) 0012.00 A PRINT 0013.00 * --------------------------- 0014.00 A R DSPHEAD 0015.00 * --------------------------- 0016.00 A TEXT(' 初期画面レコード ') 0017.00 A CF03(03 ' 終了 ') 0018.00 A BLINK 0019.00 A 1 2'MNYSCR' 0020.00 A 1 27' コード・マスターの照会 ' 0021.00 A DSPATR(HI) 0022.00 A 2 64' 日付 ' 0023.00 A 2 71DATE(*JOB *YY) 0024.00 A EDTCDE(W) 0025.00 A 3 64' 時刻 ' 0026.00 A 3 71TIME 0027.00 A EDTWRD(' : : ') 0028.00 A 3 2' テーブルID ' 0029.00 A CDTBID 10A B +2TEXT(' テーブルID ') 0030.00 A 6 2' レコード区分 ' 0031.00 A CDRKBN 1A B +2TEXT(' レコード区分 ') 0032.00 A 9 2' コード ' 0033.00 A CDTKEY 5Y 0B +2TEXT(' コード ') 0034.00 A +2' から ' 0035.00 A 11 15' 必要な項目を打鍵して実行キーを押 + 0036.00 A して下さい。 ' 0037.00 A DSPATR(HI) 0038.00 A 23 2'F3= 終了 ' 0039.00 A COLOR(BLU) 0040.00 A R SFREC01 SFL 0041.00 A*%%TS SD 20221010 192642 QTR REL-V6R1M0 5761-WDS 0042.00 A TEXT(' SFLレコード ') 0043.00 A*------------------------------------------------* 0044.00 A GYO 4A O 6 2TEXT(' ') 0045.00 A CDTBID 10A O 6 7TEXT(' テーブルID ') 0046.00 A CDRKBN 1A O 6 24TEXT(' レコード区分 ') 0047.00 A CDTKEY 5Y 0O 6 31TEXT(' コード ') 0048.00 A EDTCDE(J) 0049.00 A CDNAME# 36A O 6 42TEXT(' コード名称 56') 0050.00 A* 0051.00 A* --------------------------- 0052.00 A* --------------------------- 0053.00 A R SFCTL01 SFLCTL(SFREC01) 0054.00 A*%%TS SD 20221010 192642 QTR REL-V6R1M0 5761-WDS 0055.00 A SFLSIZ(0016) 0056.00 A SFLPAG(0015) 0057.00 A TEXT(' SFLコントロール *SCRBAR') 0058.00 A OVERLAY 0059.00 A 41 SFLDSPCTL 0060.00 A 42 SFLDSP 0061.00 A 43 SFLINZ 0062.00 A SFLRNA 0063.00 A 44 SFLCLR 0064.00 A 45 SFLEND(*MORE) 0065.00 A 46 SFLDLT 0066.00 A 61 SFLMSGID(EDT0411 QPDA/QEDTMSG 61) 0067.00 A 62 SFLMSGID(EDT0410 QPDA/QEDTMSG 62) 0068.00 A ROLLUP(14 ' 次頁 ') 0069.00 A CF03(03 ' 終了 ') 0070.00 A CF12(12 ' 前画面 ') 0071.00 A SETOF(99) 0072.00 A BLINK 0073.00 A DSPREC 4S 0H SFLRCDNBR(CURSOR) 0074.00 A 1 2'MNYSCR' 0075.00 A 1 27' コード・マスターの照会 ' 0076.00 A DSPATR(HI) 0077.00 A 2 64' 日付 ' 0078.00 A 2 71DATE(*JOB *YY) 0079.00 A EDTCDE(W) 0080.00 A 3 64' 時刻 ' 0081.00 A 3 71TIME 0082.00 A EDTWRD(' : : ') 0083.00 A*( 明細行の桁見出し ) 0084.00 A 5 2' ' 0085.00 A DSPATR(HI) 0086.00 A 4 7' テーブル ' 0087.00 A DSPATR(HI) 0088.00 A 5 7' ID ' 0089.00 A DSPATR(HI) 0090.00 A 4 20' レコード ' 0091.00 A DSPATR(HI) 0092.00 A 5 20' 区分 ' 0093.00 A DSPATR(HI) 0094.00 A 5 30' コード ' 0095.00 A DSPATR(HI) 0096.00 A 5 41' コード名称 ' 0097.00 A DSPATR(HI) 0098.00 * --------------------------- 0099.00 A R DSPEND01 0100.00 * --------------------------- 0101.00 A TEXT(' 機能キーの表示 ') 0102.00 A OVERLAY 0103.00 A CF03(03 ' 終了 ') 0104.00 A 23 2'F3= 終了 ' 0105.00 A COLOR(BLU) 0106.00 A 23 52'F12= 前画面 ' 0107.00 A COLOR(BLU) 0108.00 A 23 66'ROLL UP/DOWN' 0109.00 A COLOR(BLU) -------------------------------------------------------------------------------------------------------------- [コンパイル] CRTDSPF FILE(QTROBJ/MNYSCRFM) SRCFILE(QTRSRC/QDSPSRC) LVLCHK(*NO) AUT(*ALL)
[RPG : MNYSCR : コード・マスターの照会] http://218.44.135.18/QSYS.LIB/QTRSRC.LIB/QRPGLESRC.FILE/MNYSCR.MBR
-------------------------------------------------------------------------------------------------------------- 0001.00 H DFTNAME(MNYSCR) DATEDIT(*YMD/) BNDDIR('QC2LE') 0002.00 F********** コード・マスターの照会 *********************************** 0003.00 FMNYSCRFM CF E WORKSTN 0004.00 F SFILE(SFREC01:RRN1) 0005.00 F INFDS(INFDS) 0006.00 FCODEMSTL01IF E K DISK 0007.00 F********************************************************************** 0008.00 * QTRSRC/QRPGLESRC(MNYSCR) 0009.00 * 使用目的 : 照会 (*INQUIRY) 0010.00 * 作成日 : 2022/10/10 19:15:05 0011.00 * 作成者 : QTR 0012.00 0013.00 D AR S 1 DIM(80) 0014.00 D SAVDTA S 1 DIM(1024) SAVE-データ 0015.00 D STRGYO S 2S 0 INZ(6) 0016.00 D GYOSU S 3S 0 0017.00 D ENDRRN S 3S 0 0018.00 D SFLPAG S 2S 0 INZ(15) 0019.00 D SFLSIZ S 3S 0 INZ(16) 0020.00 D DSPREC S 4S 0 0021.00 D N S 4S 0 0022.00 D GYO S 4A 0023.00 0024.00 D SAVEDS E DS EXTNAME(JUCHU) 0025.00 D DSPDTA 1 1024 0026.00 D DIM(1024) 入力 データ 0027.00 D INFDS DS 0028.00 D NUM_ROWS 152 153B 0 0029.00 D NUM_COLS 154 155B 0 0030.00 D NUM_RCDS 156 159I 0 0031.00 D* カーソルの桁と行の取込み 0032.00 D LINE 370 371B 0 0033.00 D* TOPRRN: 今表示している SFL の先頭の RRN 0034.00 D TOPRRN 378 379B 0 0035.00 D* BRRN : SFL レコード 0036.00 D BRRN 376 377B 0 0037.00 0038.00 D*( WORK 日付 YYMMDD データ 構造 ) 0039.00 D DATEDS DS 0040.00 D SRY 1 2 0 0041.00 D SRYMD 1 8 0 0042.00 D YYMMDD 3 8 0 0043.00 D YYMM 3 6 0 0044.00 D MMDD 5 8 0 0045.00 D YY 3 4 0 0046.00 D MM 5 6 0 0047.00 D DD 7 8 0 0048.00 0049.00 C*[ 注意 ] 0050.00 C* このプログラムはパラメータつきで呼び出すことができます。 0051.00 C* パラメータなしで呼び出された場合は単独で動作します。 0052.00 C*----------------------------------------------------+ 0053.00 C *ENTRY PLIST | 0054.00 C PARM SEL001 0055.00 C PARM SEL002 0056.00 C PARM SEL003 0057.00 C*----------------------------------------------------+ 0058.00 C *LIKE DEFINE CDTBID SEL001 0059.00 C *LIKE DEFINE CDRKBN SEL002 0060.00 C *LIKE DEFINE CDTKEY SEL003 0061.00 C IF %PARMS > 0 0062.00 C MOVE SEL001 CDTBID 0063.00 C MOVE SEL002 CDRKBN 0064.00 C MOVE SEL003 CDTKEY 0065.00 C GOTO GET_RECORD 0066.00 C ENDIF 0067.00 C GOTO GET_RECORD 0068.00 C*( 初期画面 ) 0069.00 C*----------------------------------------------------+ 0070.00 C START TAG | 0071.00 C EXFMT DSPHEAD | 0072.00 C*----------------------------------------------------+ 0073.00 C SETOFF 99 0074.00 C*( CF03 )- 終了 0075.00 C *IN03 IFEQ *ON CF03 0076.00 C SETON LR 0077.00 C RETURN 0078.00 C END CF03 0079.00 C*----------------------------------------------------+ 0080.00 C SETKEY KLIST | 0081.00 C KFLD CDTBID 0082.00 C KFLD CDRKBN 0083.00 C KFLD CDTKEY 0084.00 C*----------------------------------------------------+ 0085.00 C GET_RECORD TAG 0086.00 C EXSR SFLCLR 0087.00 C SETKEY SETLL CODEMSTL01 0088.00 C MOVE ' 入力 ' DSPMOD 6 0089.00 C Z-ADD 1 TOPRRN 0090.00 C EXSR READ 0091.00 C Z-ADD 1 DSPREC 0092.00 C*( サブ・ファイルの表示 ) 0093.00 C*----------------------------------------------------+ 0094.00 C DSPLY TAG | 0095.00 C WRITE DSPEND01 | 0096.00 C SETON 4142 |SFL-DSPLY 0097.00 C EXFMT SFCTL01 | 0098.00 C SETOFF 4142 | 0099.00 C*----------------------------------------------------+ 0100.00 C SETOFF 99 0101.00 C*( CF03 )- 終了 0102.00 C *IN03 IFEQ *ON CF03 0103.00 C SETON LR 0104.00 C RETURN 0105.00 C END CF03 0106.00 C*( CF12 )- 前画面 0107.00 C *IN12 IFEQ *ON CF12 0108.00 C SETOFF 12 0109.00 C *NOKEY CLEAR MCDR 0110.00 C GOTO START 0111.00 C END CF12 0112.00 C*( ROLL UP )- 次ページ 0113.00 C *IN14 IFEQ *ON ROLLUP 0114.00 C EXSR ROLLUP 0115.00 C GOTO DSPLY 0116.00 C END ROLLUP 0117.00 C*( 実行キー ) 0118.00 C GOTO DSPLY 0119.00 C****************************************************** 0120.00 C *INZSR BEGSR 0121.00 C****************************************************** 0122.00 C* 初期サイクルのみの実行 0123.00 C CLEAR SAVEDS 0124.00 C CLEAR DATEDS 0125.00 C MOVE SFLPAG GYOSU 行数 0126.00 C*( DS の数字フィールドのクリヤー ) 0127.00 C CLEAR SFREC01 0128.00 C INZEND ENDSR 0129.00 C****************************************************** 0130.00 C READ BEGSR 0131.00 C****************************************************** 0132.00 C*( データ・ベースの検索 ) 0133.00 C*----------------------------------------------------+ 0134.00 C EQLKEY KLIST | 0135.00 C KFLD CDTBID 0136.00 C KFLD CDRKBN 0137.00 C KFLD CDTKEY 0138.00 C*----------------------------------------------------+ 0139.00 /FREE 0140.00 ENDRRN = TOPRRN + GYOSU - 1; 0141.00 DSPREC = 0; 0142.00 /END-FREE 0143.00 C TOPRRN DO ENDRRN RRN1 4 0 READ 0144.00 C SETOFF 45 0145.00 C READ CODEMSTL01 45 0146.00 C 45 LEAVE 0147.00 C EXSR CHECK 0148.00 C*( 行 NO に入れる ) 0149.00 C MOVE RRN1 GYO 0150.00 C*( SFL レコードを追加 ) 0151.00 C*----------------------------------------------------+ 0152.00 C WRITE SFREC01 | 0153.00 C*----------------------------------------------------+ 0154.00 C IF DSPREC = 0 0155.00 C EVAL DSPREC = RRN1 0156.00 C ENDIF 0157.00 C END READ 0158.00 C REDEND ENDSR 0159.00 C****************************************************** 0160.00 C CHECK BEGSR 0161.00 C****************************************************** 0162.00 C*( 明細チエック ) 0163.00 C MOVEL CDNAME CDNAME# 0164.00 C CHKEND ENDSR 0165.00 C****************************************************** 0166.00 C SFLCLR BEGSR 0167.00 C****************************************************** 0168.00 C*( SFL のクリヤー ) 0169.00 C*----------------------------------------------------+ 0170.00 C SETON 44 | 0171.00 C WRITE SFCTL01 | 0172.00 C SETOFF 44 | 0173.00 C*----------------------------------------------------+ 0174.00 C ENDSR 0175.00 C****************************************************** 0176.00 C ROLLUP BEGSR 0177.00 C****************************************************** 0178.00 C *IN45 IFEQ *ON 0179.00 C SETON 6199 0180.00 C ELSE 0181.00 C ENDRRN ADD 1 TOPRRN 0182.00 C EXSR READ 0183.00 C ENDIF 0184.00 C UPEND ENDSR 0185.00 C***************************************************** 0186.00 C CURSOR BEGSR 0187.00 C***************************************************** 0188.00 C LINE DIV 256 LIN 3 0 ガメン の行数 0189.00 C MVR POS 3 0 ガメン の桁数 0190.00 C ENDSR --------------------------------------------------------------------------------------------------------------- [コンパイル] CRTBNDRPG PGM(QTROBJ/MNYSCR) SRCFILE(QTRSRC/QRPGLESRC) DFTACTGRP(*NO) ACTGRP(*NEW) DBGVIEW(*SOURCE) AUT(*ALL)