トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

RPGで画面作成

 テーブル作成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
     A* 得意先マスター・ファイル
     A                                      UNIQUE
     A*
     A          R TKMASR                    TEXT('得意先マスター・レコード')
     A*
     A            TKBANG         5A         COLHDG('得意先' '番号')
     A            TKNAKN        20A         COLHDG('得意先' '仮名')
     A            TKNAKJ        20O         COLHDG('得意先' '漢字')
     A            TKADR1        20O         COLHDG('住所1')
     A            TKADR2        20O         COLHDG('住所2')
     A            TKTIKU         2A         COLHDG('地区' 'コード')
     A            TKPOST         6A         COLHDG('郵便番号')
     A            TKTELE        13A         COLHDG('電話番号')
     A            TKGURI         9P 0       COLHDG('当月' '売上高')
     A            TKNURI         9P 0       COLHDG('当年' '売上高')
     A            TKZURI         9P 0       COLHDG('前年' '売上高')
     A            TKUZAN         9P 0       COLHDG('売掛金' '残高')
     A            TKGEND         9P 0       COLHDG('信用' '限度額')
     A            TKNYUK         6P 0       COLHDG('最終' '入金日')
     A            TKSIME         1A         COLHDG('締め日' 'コード')
     A*
     A          K TKBANG 

上記ソースを作成し、

CRTPF

でコンパイル。

 画面定義の作成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
     A*得意先マスター修正
     A*<<ファンクションキーの定義>>
     A*-----------* F3 (*INKC)
     A                                      CF03
     A*****************************************************************
     A**          G0     ヘッダー画面                              **
     A*****************************************************************
     A          R G0                        TEXT('ヘッダー画面')
     A*
     A            G0PGID        10A  O  1  2TEXT('PGMID')
     A*
     A                                  1 31'得意先マスター修正'
     A                                      DSPATR(RI HI)
     A*
     A            G0WSNO        10A  O  1 60TEXT('端末番号')
     A*
     A                                  1 71DATE
     A                                      EDTWRD('0  /  /  ')
     A                                  2 71TIME
     A                                      EDTWRD('0  :  :  ')
     A*****************************************************************
     A**          G1     コード入力画面                            **
     A*****************************************************************
     A          R G1                        TEXT('見出し画面')
     A                                      OVERLAY
     A*
     A                                  3  2'得意先番号'
     A                                      COLOR(WHT)
     A*
     A            G1BANG         5A  B  3 15TEXT('得意先番号')
     A  70                                  DSPATR(PR)
     A*
     A            G1NAKJ        20O  O  3 22TEXT('得意先名')
     A*****************************************************************
     A**          G2      修正画面                                **
     A*****************************************************************
     A          R G2                        TEXT('修正画面')
     A                                      OVERLAY
     A*<<ファンクションキーの定義>>
     A*-----------* F12 (*INKL)
     A                                      CF12
     A*
     A                                  5  4'住所'
     A                                      COLOR(WHT)
     A            G2ADR1        20O  B  5 15TEXT('住所1')
     A            G2ADR2        20O  B  5 36TEXT('住所2')
     A*
     A                                  7  4'地区'
     A                                      COLOR(WHT)
     A            G2TIKU         2   B  7 15TEXT('地区')
     A  71                                  DSPATR(RI PC)
     A*
     A                                  9  4'締日'
     A                                      COLOR(WHT)
     A            G2SIME         1   B  9 15TEXT('締日')
     A  72                                  DSPATR(RI PC)
     A*
     A                                 11  4'売掛金残高'
     A                                      COLOR(WHT)
     A            G2UZAN         9  0B 11 17TEXT('売掛金残高')
     A*****************************************************************
     A**          G5     コード入力画面                            **
     A*****************************************************************
     A          R G5                        TEXT('コマンド指示画面')
     A                                      OVERLAY
     A*
     A                                 23  2'実行 =OK F3=終了 +
     A                                      F12= 取消'
     A                                      COLOR(PNK)
     A*                                     EDTWRD('   ,   , 0 -')
     A*****************************************************************
     A**          G6       エラーメッセージ画面                    **
     A*****************************************************************
     A          R G6                        TEXT('エラーメッセージ画面')
     A                                      OVERLAY
     A*
     A  80        EMSG          32     24 48TEXT('エラーメッセージ')
     A                                      DSPATR(RI BL) 

上記ソースを作成し、

CRTDSPF

でコンパイル。

 帳票出力プログラムの作成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
     H********************************************************
     H* 使用標識
     H*               70 : 得意先番号プロテクト
     H*               71 : 地区コードエラー
     H*               72 : 締日コードエラー
     H*               80 : 共通エラー標識
     H*
     H*               90 : 得意先M READ INVALID
     H*
     H********************************************************
     H            Y
     F********************************************************
     F*   ファイル情報
     F********************************************************
     F*-----------------------------------*  得意先マスター  
     FTKMASP  UF  E           K        DISK
     F*-----------------------------------*  得意先マスター一覧表
     FENS020DSCF  E                    WORKSTN
     E*=======================================================
     E*                    ARRAY  TABLE
     E*=======================================================
     E*  エラーメッセージ
     E                    A#ER    1   3 32
     I********************************************************
     I**  I仕様書
     I********************************************************
     I*<<プログラム状況データ構造>>
     I           SDS
     I*                    * プログラムID
     I                                        1  10 #PGID
     I*                    * ライブラリー名
     I                                       81  90 #LIBNM
     I*                    * ジョブ名
     I                                      244 253 #JOBNM
     I*                    * ユーザー名
     I                                      254 263 #USER
     I*                    * ジョブ番号
     I                                      264 269 #JOBNO
     C********************************************************
     C**         複合キー指定                             **
     C********************************************************
     C*得意先マスターキー
     C           K#TKMS    KLIST
     C                     KFLD           K#TKNO  5        得意先番号
     C********************************************************
     C**         得意先マスター修正                     **
     C********************************************************
     C*初期処理
     C                     EXSR @INIT
     C*メイン処理
     C           STATUS    DOWNE'9'
     C                     EXSR @MAIN
     C                     ENDDO
     C*終了処理
     C                     EXSR @END
     C********************************************************
     C**  1.0    @INIT    初期処理
     C********************************************************
     C           @INIT     BEGSR
     C*
     C                     MOVEL'1'       STATUS  1        画面遷移STS CD
     C                     MOVEL#PGID     G0PGID           プログラムID
     C                     MOVEL#JOBNM    G0WSNO           端末番号
     C                     MOVEL*BLANK    EMSG             エラーメッセージ
     C*<<タイトル画面出力>>
     C                     WRITEG0
     C*
     C                     ENDSR
     C********************************************************
     C**  2.0    @MAIN    メイン処理
     C********************************************************
     C           @MAIN     BEGSR
     C*
     C                     SELEC
     C* 得意先番号・入力画面処理
     C           STATUS    WHEQ '1'
     C                     EXSR @INPG1
     C* 得意先マスター・修正画面処理
     C           STATUS    WHEQ '2'
     C                     EXSR @INPG2
     C* その他
     C                     OTHER
     C*
     C                     ENDSL
     C*
     C                     ENDSR
     C********************************************************
     C**  2.1    @INPG1   得意先番号入力
     C********************************************************
     C           @INPG1    BEGSR
     C*
     C                     MOVEL*OFF      *IN70
     C                     WRITEG0                         タイトル画面表示
     C                     WRITEG5                         コマンド指示
     C                     WRITEG6                         エラー画面
     C*コード入力画面G1のWRITE READ
     C                     EXFMTG1
     C                     MOVEL*OFF      *IN80
     C* 終了キーF3押下判定
     C                     SELEC
     C           *INKC     WHEQ *ON
     C                     MOVEL'9'       STATUS            画面遷移 STS CD
     C* その他
     C                     OTHER
     C* 入力した得意先番号のマスター存在チェック
     C                     MOVELG1BANG    K#TKNO             得意先番号
     C           K#TKMS    CHAINTKMASR               90
     C           *IN90     IFEQ *ON
     C                     MOVELA#ER,1    EMSG
     C                     MOVEL*ON       *IN80
     C                     MOVEL'1'       STATUS
     C                     ELSE
     C*   入力した得意先の内容を画面へ転送
     C                     MOVELTKNAKJ    G1NAKJ
     C                     MOVELTKADR1    G2ADR1
     C                     MOVELTKADR2    G2ADR2
     C                     MOVELTKTIKU    G2TIKU
     C                     MOVELTKSIME    G2SIME
     C*                    MOVELTKUZAN    G2UZAN
     C                     Z-ADDTKUZAN    G2UZAN
     C                     MOVEL'2'       STATUS
     C                     ENDIF
     C*
     C                     ENDSL
     C*
     C                     ENDSR
     C********************************************************
     C**  2.2    @INPG2   得意先M修正 
     C********************************************************
     C           @INPG2    BEGSR
     C*
     C                     MOVEL*ON       *IN70
     C                     WRITEG0                         タイトル画面表示
     C                     WRITEG0                         タイトル画面表示
     C                     WRITEG5                         コマンド指示
     C                     WRITEG6                         エラー画面
     C*修正画面G2のWRITE READ
     C                     EXFMTG2
     C                     MOVEL*OFF      *IN80
     C* 終了キーF3押下判定
     C                     SELEC
     C           *INKC     WHEQ *ON
     C                     MOVEL'9'       STATUS            画面遷移 STS CD
     C* 取り消しF12押下判定
     C           *INKL     WHEQ *ON
     C                     MOVEL'1'       STATUS            画面遷移 STS CD
     C* その他
     C                     OTHER
     C* 入力した内容をチェックする
     C                     EXSR @CHKG2
     C           *IN80     IFEQ *ON
     C                     MOVEL'2'       STATUS
     C                     ELSE
     C*   入力した得意先の内容を得意先マスターへ転送
     C                     MOVELG2ADR1    TKADR1
     C                     MOVELG2ADR2    TKADR2
     C                     MOVELG2TIKU    TKTIKU
     C                     MOVELG2SIME    TKSIME
     C*                    MOVELG2UZAN    TKUZAN
     C                     Z-ADDG2UZAN    TKUZAN
     C                     UPDATTKMASR
     C                     MOVEL'1'       STATUS
     C*
     C                     CLEARG1
     C                     CLEARG2
     C                     ENDIF
     C*                    *
     C                     ENDSL
     C*
     C                     ENDSR
     C********************************************************
     C**  2.2.1  @CHKG2   入力内容チェック
     C********************************************************
     C           @CHKG2    BEGSR
     C*
     C                     SETOF                     7172
     C* <<地区コードチェック>>
     C           G2TIKU    IFGE '90'
     C           G2TIKU    ANDLE'99'
     C                     SETON                     8071
     C                     MOVELA#ER,2    EMSG
     C                     ENDIF
     C* <<締日コードチェック>>
     C           G2SIME    IFGE '1'
     C           G2SIME    ANDLE'9'
     C                     ELSE
     C                     SETON                     8072
     C                     MOVELA#ER,3    EMSG
     C                     ENDIF
     C*                    *
     C                     ENDSR
     C********************************************************
     C**         @END     終了処理
     C********************************************************
     C           @END      BEGSR
     C*
     C                     SETON                     LR
     C                     RETRN
     C*
     C                     ENDSR
     C********************************************************
** A#ER
得意先マスター未登録です。
地区コードが不正です。
締日は1〜9を入力してください 

上記ソースを作成し、

CRTRPGPGM

でコンパイル。

罫線表示する場合

OPNBOX

で、ToolBoxのメニューを表示。

1.プログラム開発/保守メニュー

を選択し、

4.画面ファイルの罫線定義

を選択する。

ファイル: XXXXXXD
ライブラリ:XXXXOBJ

のように、オブジェクトファイルを指定する。
画面を操作して、罫線をひく

[カテゴリ: プログラミング言語 > RPG]

[通知用URL]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2009年07月01日 22時32分04秒