最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

11.7.1. 汎用選択画面 解説

[ HOME ] [ Upper ]


このツールの特徴

iqrpg3.gif (12313 バイト)

  • 物理、論理ファイルを読み込んで、指定したフィールドの値を、ウインドウ内に表示して、オプションで選択したレコードをプログラムに返します。
  • 設定のインターフェイスは、QRYに似せました。
  • ファイルは、定義のみですので、ディスクを圧迫しません。また、表示も、共通の画面ファイルで行っています。
  • ファイルのレベル検査をするようにしました。変更ファイルをWRKSLTで呼び出すと、メッセージが出てきます。

数字は、ゾーン(S)、パック(P)、バイナリ(B)のみ対応しています。浮動小数点やヘキサフィールドには、対応していません。

オペレーション方法

WRKSLTと入力して、実行キーを押下します。

wrkslt02.gif (18160 バイト)

オプション

既に登録された、IDがリスト表示されます。左端のオプション欄に数字を入れることで、既存のIDにヒモ付けされる定義内容の処理が出来ます。

オプション内容

2=既存のIDにヒモ付けされる定義内容の修正

3=IDを別のIDへコピー

4=既存のIDにヒモ付けされる定義内容の削除

6=既存のIDにヒモ付けされる定義内容の表示テスト

新規追加はF6です。

新規追加

wrkslt03.gif (11874 バイト)

実行キー↓

wrkslt04.gif (12782 バイト)

表示フィールドの選択

10個以内で、表示しきれる範囲。欄の設定で確認してください。

wrkslt06.gif (13178 バイト)

戻しフィールドの選択選択画面の欄の形式の指定

10個以内で、総100バイト以内まで選択可能。

wrkslt08.gif (13014 バイト)

wrkslt12.gif (14222 バイト)

更新確認画面

wrkslt13.gif (10801 バイト)

各オプションの例

3=コピー

wrkslt15.gif (17696 バイト)

実行キー↓

wrkslt16.gif (16276 バイト)

4=削除

wrkslt19.gif (17641 バイト)

実行キー↓

wrkslt20.gif (15304 バイト)

6=表示テスト

wrkslt21.gif (17661 バイト)

実行キー↓

wrkslt22.gif (17212 バイト)

上図は、オプション6のテスト画面です。ここで、ウインドウの中の選択フィールドを指定して、実行キーを押下すると、下図のような、選択内容の確認画面がでます。これは、定義中にしかでない画面です。また、IQI030b_debug.gif (282 バイト)から受け取るデータの中身でもあります。

wrkslt24.gif (15695 バイト)

戻される値の確認画面です。戻される値は100バイトまでです。

上図は、実際に組み込んで実行しているところです。

RPGへの組み込み方法

上記の定義は、RPGプログラムIQI030で、実行されます。つまり、選択ウインドウをつけたい、RPGやCLPの中に、

     C                     CALL 'IQI030'
     C                     PARM 'TEST0001'POIQID 11
     C                     PARM *ON       POKEY   1
     C                     PARM           POKEYV 30
     C                     PARM *ON       POKPOS  1
     C                     PARM 'Y'       POSLT  
     C                     PARM           PIDTA   1
     C                     PARM           PIRTN 100                

を加える事で、可能です。

IQI030のパラメータ

1 PoIQID 文字 11バイト 渡しパラメータ 定義をしたID名
2 PoKEY 文字 1バイト 渡しパラメータ キーを使用する場合は'1'、使用しない場合は'0'(現在は、このパラメータは無視されています。)
3 PoKEYV 文字 30バイト 渡しパラメータ 初期値として、指定したいファイルキーを30バイト以内で指定します。
4 PoKPOS 文字 1バイト 渡しパラメータ '1'=指定ファイルがキー付きの場合、画面左上に、表示開始位置を指定できる画面を出す。'0'=左上に表示位置入力を表示しない。キーなしの場合、このパラメータは無視されます(開始位置指定フィールドは表示されません。)
5 PoSLT 文字 1バイト 渡しパラメータ Y=で、オプション欄の表示。N=でオプション欄非表示
6 PiDTA 文字 1バイト 受けパラメータ '1'=選択された値がある場合、'0'=選択された値が無い場合
7 PiRTN 文字 100バイト 受けパラメータ 定義無いで指定された値が戻される。数字(ゾーン、パック、バイナリ)は文字化されて戻されます。また、複数のフィールドを指定場合は、フィールドの値と値の間はスペース無しで、連結されて戻されますので、受け取った後で、ユーザー自身が、それを分解しなくてはなりません。

将来、バージョンアップによりパラメータの個数に変動があります。

例 RPGに組み込み

 001 C           H1RCD     WHEQ 'FMT01'                    :
*001 C           H1FLD     ANDEQ'V1FD31'                   :
*001 C           H1RCD     OREQ 'FMT01'                    :
*001 C           H1FLD     ANDEQ'V1FD32'                   :
 001 C                     MOVELV1FD31    POKEYV           :
 001 C                     CALL 'IQI030'                   :
 001 C                     PARM 'TEST0003'POIQID           :
 001 C                     PARM *ON       POKEY            :
 001 C                     PARM           POKEYV           :
 001 C                     PARM *ON       POKPOS           :
 001 C                     PARM 'Y'       POSLT            :  
 001 C                     PARM           PIDTA            :
 001 C                     PARM           PIRTN            :
B002 C           PIDTA     IFEQ *ON                        :
 002 C                     MOVELPIRTN     W1FD31  3        :
 002 C           6         SUBSTPIRTN:4   W1FD32  6        :
 002 C                     MOVELW1FD31    V1FD31           :
 002 C                     MOVELW1FD32    V1FD32           :
E002 C                     END                             :             
上記の例で定義した、IQDSPMPを使ってみます。          
wrksltrpg.gif (15369 バイト) 
b_debug.gif (282 バイト)
このイメージは古いバージョンでした。(IQI010ではなくIQI030が最新です。)
 001 C                     CALL 'IQI030'                   :
 001 C                     PARM 'IQDSPMP' POIQID           :
 001 C                     PARM *ON       POKEY            :
 001 C                     PARM           POKEYV           :
 001 C                     PARM *ON       POKPOS           :
 001 C                     PARM 'Y'       POSLT            :  
 001 C                     PARM           PIDTA            :
 001 C                     PARM           PIRTN            : 
として下さい。
iqrpg2.gif (8534 バイト)          
FLD2でF4を押すと、          
iqrpg3.gif (12313 バイト)          
さらに、数字1で選択をすると、          
iqrpg4.gif (12369 バイト)          

実行キー↓

iqrpg5.gif (8657 バイト)          

例 CLPに組み込み

  PGM          
   DCLF  IQTESTD
   DCL   &POIQID   *CHAR  11
   DCL   &POKEY    *CHAR   1
   DCL   &POKEYV   *CHAR  30
   DCL   &POKPOS   *CHAR   1
   DCL   &POSLT    *CHAR   1
   DCL   &PIDTA    *CHAR   1
   DCL   &PIRTN    *CHAR 100          
   \FMT01:          
     SNDRCVF *N FMT01          
            IF (&IN03) GOTO \END          
      IF  (&IN04) DO
          IF (&H1RCD='FMT01' & &H1FLD='V1FLD2') DO
          CHGVAR  &POIQID   'IQDSPMP  '
          CHGVAR  &POKEY    '1'
          CHGVAR  &POKEYV   ' '
          CHGVAR  &POKPOS   '1'
          CHGVAR  &POSLT    'Y'       
          CHGVAR  &PIDTA    ' '
          CHGVAR  &PIRTN    ' '
        CALL  IQI030  (&POIQID &POKEY &POKEYV &POKPOS &POSLT &PIDTA &PIRTN)
         IF  (&PIDTA='1')  DO
                  CHGVAR   &V1FLD2  &PIRTN
                ENDDO
        GOTO  \FMT01
       ENDDO
       ENDDO          
        GOTO  \FMT01          
 \END:
 RETURN
 ENDPGM          

画面ファイル IQTESTD

     A                                      DSPSIZ(24 80 *DS3)
     A                                      PRINT
     A                                      INDARA
     A                                      CA03(03)
     A                                      CF04(04)
     A          R FMT01
     A*%%TS  SD  19951116  153719  KAKEFUDA    REL-V3R0M5  5763-PW1
     A                                      CA12
     A                                      KEEP
     A                                      RTNCSRLOC(&H1RCD &H1FLD)
     A                                      BLINK
     A  80                                  ALARM
     A                                      OVERLAY
     A                                      PUTOVR
     A            H1FLD         10A  H
     A            H1RCD         10A  H
     A                                  6  3'FLD 1 . . '
     A            V1FLD1         3Y 0B  6 14EDTCDE(3)
     A                                      OVRDTA
     A                                      OVRATR
     A                                  6 25'F4リスト'
     A                                  8 11'FLD 2 . . '
     A            V1FLD2         6A  B  8 22
     A                                      OVRDTA
     A                                      OVRATR
     A                                  8 33'F4リスト'
     A                                 10 16'FLD 3 . . '
     A            V1FD31         3Y 0B 10 27EDTCDE(3)
     A                                      OVRDTA
     A                                      OVRATR
     A            V1FD32         6Y 0B 10 31EDTCDE(3)
     A                                      OVRDTA
     A                                      OVRATR
     A                                 10 43'F4リスト'
     A                                 12 25'FLD 4 . . '
     A            V1FLD4         6A  B 12 36
     A                                      OVRDTA
     A                                      OVRATR
     A                                 12 47'F4リスト'
     A                                 22  3'F3=終了'
     A                                      DSPATR(HI)
     A            V1MSG#         7A  O 23  2DSPATR(HI)
     A                                      DSPATR(BL)
     A                                      OVRDTA
     A            V1MSG         70A  O 23 10DSPATR(HI)
     A                                      DSPATR(BL)
     A                                      OVRDTA       

[ HOME ] [ Upper ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送