home

top bbs_s.gif (936 バイト)

updated on 2004.06.24

2.23. 横スクロールサンプル解説

[previous][upper][next]

今度は、パターン4の説明です。ポイントは、SFL01+CTLl01のセットを2つにすることです。つまり、SFL01+CTL01,SFL02+CTL02の2つのサブファイルを処理対象とします。もし切り替え画面が3つならSFL01+CTL01,SFL02+CTL02,SFL03+CTL03となります。読み込んだデータはSFL01,SFL02に同時に、同じRRNでセットしますので、RRNはRRN01一つのみです。この点以外はパターン2と同じです。

このサンプルでは、入力フィールドの無いサブファイルとしています。もし、入力フィールドを設けると、入力して、実行キーを押す前に、切り替えキーを押すと別の画面を出しているので、あたかも、入力値が消えたように見えます。(実際は切り替え前の画面に保持されているのですが)。これを避けたければ,SFL01からSFL02に切り替えるたび、SFL01をREADCで読み込み、入力されたSFL01の内容を同じRRNのSFL02にUPDATEしてしまえばOKです。SFLNXTCHGをONにしてUPDATEすることを忘れずに。

既にパターン1で説明した基本的部分の解説は、省略します。

プレーンテキストソース:zzi040.txt

構造化ソース:zzi040s.txt

     H        1   Y/                                    1
     F******************************************************
     F*     D E F I N E    F I L E S                       *
     F******************************************************
     FZZJOBML1IF  E           K        DISK
     FZZI040D CF  E                    WORKSTN
[解説10]
     F                                        RRN01 KSFILE SFL01
     F                                        RRN01 KSFILE SFL02
     F                                              KINFDS INFDSP
     E****************************************************
     E*          A R R A Y        T A B L E              *
     E****************************************************
     E                    GDE     1   2 78               :CMD GIDE
     E                    OPN     1   6 78               :OPTION
     I******************************************************
     I*     D E F I N E    C O N S T A N T                 *
     I******************************************************
     I              10                    C         #PAGSZ
     I              X'33'                 C         F3
     I              X'35'                 C         F5
     I              X'39'                 C         F9
     I              X'3C'                 C         F12
     I              X'BB'                 C         F23
     I              X'F5'                 C         ROLUP
     I******************************************************
     I*     D E F I N E    D A T A  - S T R U C T U R E    *
     I******************************************************
     I*  INFORMATION DS  (DSPF)
     IINFDSP      DS
     I                                      369 369 PUSHED
     I                                    B 378 3790DSRRN
     I*  FOR SYSTEM DATE AND TIME
     I            DS
     I                                        1  120DSDTTM
     I                                        1   60DSQTIM
     I                                        7  120DSQDAT
     I*  PROGRAM STATUS
     I           SDS
     I                                     *PROGRAM V1PGM
     I                                      244 253 V1JOB
     I                                      254 263 V1USR
     C******************************************************
     C*     DEFINITION  MODULE  ( PLIST   FIELD   KLIST )  *
     C******************************************************
     C*                                                    :
     C* FOR DUPLICATE                                      :
     C*                                                    :
     C           *LIKE     DEFN V1JOBC    W1JOBC           :
     C           *LIKE     DEFN RRN01     W1RN01           :
     C******************************************************
     C*             M A I N -  R O U T I N E                
     C******************************************************
     C* SFL消去                                            :
     C           \INZ      TAG                             :
     C*                                                    :
     C                     EXSR @SETLL                     :
     C* SFL消去                                            :
     C                     EXSR @CLCTL                     :
     C* SFL作成                                            :
     C           \BDSFL    TAG                             :
     C*                                                    :
     C                     EXSR @BDSFL                     :
     C* SFL表示                                            :
     C           \EXSFL    TAG                             :
     C*                                                    :
     C                     EXSR @EXSFL                     :
     C*                                                    :
     C           F3        CABEQPUSHED    \END             :終了
     C           F12       CABEQPUSHED    \END             :終了
     C*                                                    :
     C           V1JOBC    CABNEW1JOBC    \INZ             :
     C*                                                    :
     C           F5        CABEQPUSHED    \INZ             :再表示
[解説20]
B001 C           F9        IFEQ PUSHED                     :VIEW CHANGE
B002 C           W1VIEW    IFEQ 1                          :
 002 C                     Z-ADD2         W1VIEW           :
+002 C                     ELSE                            :
 002 C                     Z-ADD1         W1VIEW           :
E002 C                     END                             :
 001 C                     GOTO \EXSFL                     :
E001 C                     END                             :
     C*                                                    :
B001 C           F23       IFEQ PUSHED                     :
 001 C                     ADD  1         W1OPTN           :
B002 C           W1OPTN    IFGT 3                          :
 002 C                     Z-ADD1         W1OPTN           :
E002 C                     END                             :
 001 C                     GOTO \EXSFL                     :
E001 C                     END                             :
     C*                                                    :
B001 C           W1EOF     IFEQ *OFF                       :
 001 C           ROLUP     CABEQPUSHED    \BDSFL           :
E001 C                     END                             :
     C*                                                    :
     C                     GOTO \EXSFL                     :
     C*終了                                                :
     C           \END      TAG                             :
     C*                                                    :
     C                     MOVE *ON       *INLR            :
     C                     RETRN                           :
     C******************************************************
     C*             S U B   -  R O U T I N E                
     C******************************************************
     C*----------------------------------------------------*
     C           *INZSR    BEGSR                           :
     C*----------------------------------------------------*
     C                     Z-ADD0         W1CNT   40       :
     C                     Z-ADD0         RRN01   40       :
     C                     Z-ADD1         H1SRCD           :
     C*                                                    :
[解説30]
     C                     Z-ADD1         W1VIEW  10       :
     C*                                                    :
     C                     MOVE *OFF      PICNL   1        :
     C                     MOVE *OFF      W1EOF   1        :
     C                     Z-ADD1         W1OPTN  10       :
     C*                                                    :
     C                     ENDSR                           :
     C*----------------------------------------------------*
     C           @SETLL    BEGSR                           :ファイル位置
     C*----------------------------------------------------*
     C           V1JOBC    SETLLZZJOBML1                   :
     C*                                                    :
     C*位置指定変更検査用待避                              :
     C*                                                    :
     C                     MOVE V1JOBC    W1JOBC           :
     C*                                                    :
     C                     ENDSR                           :
     C*----------------------------------------------------*
     C           @CLCTL    BEGSR                           :CLEAR SFL01
     C*----------------------------------------------------*
     C                     MOVE *OFF      W1EOF            :
     C                     MOVE *OFF      *IN63            :SFLEND OFF
     C*                                                    :
     C                     Z-ADD0         RRN01            :
     C                     Z-ADD0         W1RN01           :
     C                     Z-ADD1         H1SRCD           :
     C                     CLEARSFL01                      :
     C                     CLEARSFL02                      :
     C*                                                    :
[解説40]
     C                     MOVE *ON       *IN62            :
     C                     WRITECTL01                      :SFLCLR
     C                     WRITECTL02                      :SFLCLR
     C                     MOVE *OFF      *IN62            :
     C*                                                    :
     C                     ENDSR                           :
     C*----------------------------------------------------*
     C           @BDSFL    BEGSR                           :SFL01作成
     C*----------------------------------------------------*
     C                     Z-ADDW1RN01    RRN01            :
     C                     Z-ADD0         W1CNT            :
     C*                                                    :
B001 C           W1CNT     DOUEQ#PAGSZ                     :
 001 C                     READ ZZJOBML1                 90:
B002 C           *IN90     IFEQ *ON                        :
 002 C                     MOVE *ON       *IN63            :
 002 C                     MOVE *ON       W1EOF            :
 002 C                     LEAVE                           :
+002 C                     ELSE                            :
 002 C                     EXSR @TOSFL                     :
E002 C                     END                             :
E001 C                     END                             :
     C*                                                    :
     C                     Z-ADDRRN01     W1RN01           :
     C* SFLEND検査                                         :
B001 C           *IN63     IFEQ *OFF                       :
 001 C                     READ ZZJOBML1                 90:
B002 C           *IN90     IFEQ *ON                        :
 002 C                     MOVE *ON       *IN63            :
 002 C                     MOVE *ON       W1EOF            :
+002 C                     ELSE                            :
 002 C                     READPZZJOBML1                 90:
E002 C                     END                             :
E001 C                     END                             :
     C*                                                    :
     C                     ENDSR                           :
     C*----------------------------------------------------*
     C           @TOSFL    BEGSR                           :
     C*----------------------------------------------------*
     C                     MOVE *OFF      *IN64            :SFLNXTCHG OFF
     C                     MOVELYYJNO     H1JNO            :
     C*                                                    :
     C                     ADD  1         RRN01            :
     C                     ADD  1         W1CNT            :
     C*                                                    :
[解説50]
     C                     WRITESFL01                      :
     C                     WRITESFL02                      :
     C*                                                    :
B001 C           W1CNT     IFEQ 1                          :
 001 C                     Z-ADDRRN01     H1SRCD           :
E001 C                     END                             :
     C*                                                    :
     C                     ENDSR                           :
     C*----------------------------------------------------*
     C           @EXSFL    BEGSR                           :EXFMT SUBFILE
     C*----------------------------------------------------*
B001 C           RRN01     IFNE 0                          :
 001 C                     MOVE *ON       *IN60            :SFLDSP ON
+001 C                     ELSE                            :
 001 C                     MOVE *OFF      *IN60            :SFLDSP OFF
E001 C                     END                             :
     C*                                                    :
B001 C           V1MSG#    IFNE *BLANK                     :
 001 C                     EXSR @MSG                       :
E001 C                     END                             :
     C*                                                    :
     C                     MOVE *ON       *IN61            :SFLDSPCTL ON
     C*                                                    :
B001 C                     SELEC                           :
 001 C           W1OPTN    WHEQ 1                          :
 001 C                     MOVELOPN,1     V1OPN1           :
 001 C                     MOVELOPN,2     V1OPN2           :
 001 C           W1OPTN    WHEQ 2                          :
 001 C                     MOVELOPN,3     V1OPN1           :
 001 C                     MOVELOPN,4     V1OPN2           :
 001 C           W1OPTN    WHEQ 3                          :
 001 C                     MOVELOPN,5     V1OPN1           :
 001 C                     MOVELOPN,6     V1OPN2           :
E001 C                     END                             :
     C*                                                    :
[解説60]
B001 C           W1VIEW    IFEQ 1                          :
 001 C                     MOVELGDE,1     V1GDE            :
 001 C                     WRITEFTR01                      :
 001 C                     EXFMTCTL01                      :
+001 C                     ELSE                            :
 001 C                     MOVELGDE,2     V1GDE            :
 001 C                     WRITEFTR02                      :
 001 C                     EXFMTCTL02                      :
E001 C                     END                             :
     C*                                                    :
     C                     EXSR @EROFF                     :
     C*                                                    :
     C                     MOVEA'00'      *IN,60           :
     C*                                                    :
B001 C           H1SRRN    IFNE 0                          :
 001 C                     Z-ADDH1SRRN    H1SRCD           :
+001 C                     ELSE                            :
B002 C           DSRRN     IFNE 0                          :
 002 C                     Z-ADDDSRRN     H1SRCD           :
E002 C                     END                             :
E001 C                     END                             :
     C*                                                    :
     C                     ENDSR                           :
     C*----------------------------------------------------*
     C           @MSG      BEGSR                           :
     C*----------------------------------------------------*
     C*                                                    :
     C                     ENDSR                           :
     C*----------------------------------------------------*
     C           @EROFF    BEGSR                           :
     C*----------------------------------------------------*
     C*                                                    :
     C                     ENDSR                           :
**   ....1....+....2....+....3....+....4....+....5....+....6....
F3=終了    F5=再表示    F9=ビュー2      F23=オプション続き
F3=終了    F5=再表示    F9=ビュー1      F23=オプション続き
**
   2=修正       3=店個別指定 4=削除        5=表示        6=複写
   7= OPT7        8= OPT8        9= OPT9        10= OPT10 ...
  50= OPT50      52= OPT52      54= OPT54       55= OPT55
  60= OPT60      62= OPT62      63= OPT63  ...
  71= OPT71      72= OPT72      73= OPT73
  80= OPT80      99= OPT99      ...

[previous][home][upper][next]

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