サブ・ファイルによるスクロール・バーのロールアップ/ダウンの操作は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)