スクロール・バー2.0

見出しのアイコン

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