RPGⅢとRPG Ⅳの変換方法と違い
目次
1.はじめに
2.RPGⅢからRPGⅣへの変換
3.RPGⅢとⅣの違い
4.デモ動画
5.作成ソース
1. はじめに
本記事では、RPG ⅢからRPG IVにPGMを変換する手順とそれぞれのPGMの違いについてまとめています。
とりあえず変換する手順が知りたいという方から、具体例やそれぞれの違いを実画面で見たいという方まで参考にしていただければと思います。
2. rpg3からrpg4への変換
IBM i標準のコマンド:CVTRPGSRCで変換可能です。
※コマンド内の以下の値は、実行環境に合わせて変更してください。
※LIBRARY3: RPG Ⅲのソース・ファイルが格納されているライブラリ名を指定してください
※QRPGSRC: RPG Ⅲのソース・ファイル名を指定してください
※LIBRARY4: RPG Ⅳのソース・ファイルが格納されているライブラリ名を指定してください
※QRPGLESRC: RPG Ⅳのソース・ファイル名指定してください
※SRCMBR: ソース・メンバー名を指定してください
【RPG ⅢからRPG Ⅳに変換するコマンド例】
CVTRPGSRC FROMFILE(LIBRARY3/QRPGSRC) FROMMBR(SRCMBR) TOFILE(LIBRARY4/QRPGLESRC) TOMBR(SRCMBR) CVTRPT(*NO) LOGFILE(*NONE)
上記コマンドでは実行時のログ出力を行いませんが、事前にログ・ファイルを作成し変換時にログ出力するよう指定することが可能です。
以下、ログファイルを出力する際のコマンドです。
【ログ・ファイル作成コマンド例】
CPYF FROMFILE(QRPGLE/QARNCVTLG) TOFILE(LIBRARY4/QRNCVTLG) MBROPT(*REPLACE) CRTFILE(*YES)
【ログ出力する場合のRPG ⅢからRPG Ⅳに変換するコマンド例】
CVTRPGSRC FROMFILE(LIBRARY3/QRPGSRC) FROMMBR(SRCMBR) TOFILE(LIBRARY4/QRPGLESRC) TOMBR(SRCMBR) LOGFILE(LIBRARY4/QRNCVTLG)
以下のRUNQRYコマンドからログを確認いただくことができます。
【RUNQRYコマンド例】
RUNQRY QRYFILE(LIBRARY4/QRNCVTLG)
※変換時の注意点 その1
RPG Ⅳのソース・ファイルはレコード長が最低112桁必要なので、RPG Ⅲのソース・ファイルが92桁以下の場合は事前に変換先ファイルとして112桁のソース・ファイルを作成しておいてください。
【ソース・ファイル作成コマンド例】
CRTSRCPF FILE(LIBRARY4/QRPGLESRC) RCDLEN(112) IGCDTA(*YES)
RPG Ⅲのソース・ファイルの長さの確認方法は下記のとおりです。
DSPFFD FILE(LIBRARY3/QRPGSRC)
表示された画面で改ページし、“レコード長”の項目を探して下さい。
同行に表示されている値がそのソース・ファイルのレコード長です。
※変換時の注意点 その2
RPG ⅢのCCSIDとRPG ⅣのCCSIDが異なる場合、下記のようなエラーメッセージが表示されることがあります。
それを避けるため、変換時にはCHGJOBコマンドで“RPG ⅢのCCSIDと同じCCSID”にするか、あるいは“CCSID(65535)”を指定します。
【ジョブのCCSID変更コマンド例】
CHGJOB CCSID(65535)
※変換時の注意点 その3
実行時に下記のようなエラーメッセージが表示されることがあります。
この場合、システム値やUSRPRF等を変更する他、仮想装置PRT01を作成する方法で回避できます。
【仮想印刷装置PRT01を作成するコマンド例】
CRTDEVPRT DEVD(PRT01) DEVCLS(*VRT) TYPE(5553) MODEL(B01) IGCFEAT(2424J2)
または
CRTDEVPRT DEVD(PRT01) DEVCLS(*VRT) TYPE(5583) MODEL(200) IGCFEAT(2424J2)
3. rpg3とrpg4の違い
RPG ⅢとRPG Ⅳの違いを以下にまとめました。
番号 | 違い | RPGⅢ | RPGⅣ |
---|---|---|---|
1 | ファイル名の桁数 | 8桁 | 10桁 |
2 | 日付フィールド | 扱える機能がないため10進数フィールドで定義 | データタイプDで定義 |
3 | 時刻フィールド | 扱える機能がないため10進数フィールドで定義 | データタイプTで定義 |
4 | 日付と時刻の計算方法 | 10進数フィールドを年月日で分ける。繰り上げ繰り下げは条件分岐を使用して算出する。 | フィールド 演算命令 フィールドで計算可能 |
5 | 演算命令:UPDATE | UPDATと記載 | UPDATEと記載 |
6 | 演算命令:DELETE | DELETと記載 | DELETEと記載 |
7 | 演算命令:RETURN | RETRNと記載 | RETURNと記載 |
8 | 定義仕様書(D仕様書) | - | RPG Ⅳから使用され、変数や配列、固定情報を定義 |
9 | 補足仕様書(E仕様書) | RPGⅢで使用され、プログラムで使用する配列を定義 | - |
では、順に違いを詳しくみていきます。
1. ファイル名の桁数
RPG Ⅲは8桁、RPG Ⅳは10桁まで指定することができます。
該当の記述にカーソルをあててF4キーを押下すると、項目ごとに確認ができます。
ファイルは以下のように定義します。
2. 日付フィールド
●RPG Ⅲ
日付形式用の機能がないため、8桁のゾーン 10 進数フィールドで定義します。
日付として扱うために、プログラム内で分岐処理を設定して無理矢理日付型にします。
●RPG Ⅳ
データタイプにD、DATFMTキーワードのパラメータに日付形式を指定するだけで定義ができます。
3. 時刻フィールド
●RPG Ⅲ
日付と同様に8桁のゾーン 10 進数フィールドで定義します。
こちらも時刻として扱うために、プログラム内で分岐処理を設定して60進法計算をしているかのように見せます。
●RPG Ⅳ
データタイプにT、TIMFMTキーワードのパラメータに時刻形式を指定するだけで定義ができます。
4. 日付と時刻の計算方法
●RPG Ⅲ
以下のように地道に条件分岐設定を行い算出します。
① 日数が31日の月と30日の月で条件分けを行う
② 2月がうるう年かどうか判定を行う
③ 最終日が31日の月と30日の月で最大の日数が異なってくるため、それぞれの条件に分けて、加算を行い、日→月→年の順番で繰り上げ判定を入れる
④ 日数と月数が加算であふれた場合は正しい数字に変換を行ってからセットする(例32日→1日)
●RPG Ⅳ
%DAYS関数を使用してより簡単に計算ができます。%DAYS(10)と指定すると、
変数に代入された日付から10日後の日付を計算します。
EVAL 変数名=変数名 + %DAYS(数字)のような形で使用します
5. 演算命令_更新
最後にロックされたレコードを更新します。
●RPG Ⅲ
“UPDAT”と記載します。
該当の記述にカーソルをあててF4キーを押下すると、項目ごとに確認ができます。UPDATEは以下のように定義します。
・RPGⅢ
・RPGⅣ
6. 演算命令_削除
データベース・ファイルからレコードを削除するときに使用します。
●RPG Ⅲ
”DELET”と記載します
該当の記述にカーソルをあててF4キーを押下すると、項目ごとに確認ができます。DELETEは以下のように定義します。
7. 演算命令_戻り
プログラムの呼び出し元に戻すための命令です。通常、プログラムを終了させる場合は、LR標識をオンにしてRETURN命令を実行します。
●RPG Ⅲ
“RETRN”と記載します。
●RPG Ⅳ
”RETURN”と記載します。
8. 定義仕様書
■ 使用目的
1. 名前付きの固定情報(=プログラムの処理によって変わらないデータ項目)
2. 変数(=プログラムの処理によってその都度値が変わるデータ項目)
3. 配列
■ 記述
1.仕様書コード:D
2.名前:変数、固定情報の名前
3.定義のタイプ:C-固定情報、S-変数
4.長さ:変数の長さ
5.属性:変数のタイプ
A-1バイト文字、G-図形文字、P-パック10進数、S-ゾーン10進数、D-日付、
T-時刻
6.小数点以下:小数点以下の桁数
7.機能:固定情報またはキーワード
9. 補足仕様書
E仕様書はRPGⅢで使用されます。
1次元のみ可能で、2次元の配列は定義できません。
■ 使用目的
配列の名称、要素数、要素の長さなどプログラム中で使用する配列にかかわる内容を定義します。
■ 記述
1.仕様書コード:E
2.テーブル名:配列またはテーブルの名前を入力
3.項目数 レコード:1レコードあたりの項目数を決めます
4.項目数 テーブル:配列またはテーブル項目の最大数を指定
5.項目の長さ:指定した配列またはテーブルの各要素の長さを表す
6.配列のデータタイプ P/B/L/R:
Pの場合…パック10進数形式
Bの場合…データが2進数形式
Lの場合…データの前に+、-がつく場合
Rの場合…データの後ろに+、-がつく場合
7.小数部 位置:小数点以下の桁数
8.順序(A-D):
A…データを昇順にする
D…データを降順にする
9.代替名:代替用の名前を入力
10.注記:コメントが残せる
4. デモ動画
■RPGソースの作成方法
■作成したプログラム
5. 作成ソース
RPGⅢ
折りたたみを展開してご覧ください
rpg3物理ファイルソース
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
* *
* COPYRIGHT IBM CORP. *
* *
* *
* *
* THIS MODULE IS "RESTRICTED MATERIALS OF IBM" *
* *
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
*--------------------------------------------------------------*
* 物理ファイル名:CDMPR *
* :品目マスター *
*--------------------------------------------------------------*
A R PRR01 TEXT('品目マスター')
A PRPRCD 20A COLHDG('品番')
A PRPRRK 22A COLHDG('品名')
A PRSRCD 5A COLHDG('仕入先コード')
A PRZMBN 20A COLHDG('図面番号')
A PRPRTP 1A COLHDG('品目タイプ')
A PRTEIK 11S 0 COLHDG('定価')
A PRGENK 11S 0 COLHDG('原価')
A PRGSUR 11S 0 COLHDG('当月売上数量')
A PRNSUR 11S 0 COLHDG('当年売上数量')
A PRGGNK 11S 0 COLHDG('当月売上原価')
A PRNGNK 11S 0 COLHDG('当年売上原価')
A PRGKIN 11S 0 COLHDG('当月売上金額')
A PRNKIN 11S 0 COLHDG('当年売上金額')
A PRHCDT 8S 0 COLHDG('発注日')
A PRNHDT 8S 0 COLHDG('納品日')
A PRCRDT 8S 0 COLHDG('作成日')
A PRUPDT 8S 0 COLHDG('最終更新日')
A PRCRTM 8S 0 COLHDG('作成時刻')
A PRUPTM 8S 0 COLHDG('最終更新時刻')
*
A K PRPRCD
rpg3メイン機能ソース
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
* *
* 5754-AEP COPYRIGHT IBM CORP. 1995 LICENSED MATERIAL - *
* PROGRAM PROPERTY OF IBM *
* REFER TO COPYRIGHT INSTRUCTIONS FORM *
* NO. N:G120-2083 *
* THIS MODULE IS "RESTRICTED MATERIALS OF IBM" *
* *
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
* PROGRAM名 : RPG100 *
* PROGRAM記述 : 品目マスター保守 *
* *
* 更新日 : 2024/08/30 *
* *
* *
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
H Y/ 1
*===============================================================*
* FILE
*===============================================================*
*---------------------------------------------------------------*
* 画面 : DISPLAY FILE
*---------------------------------------------------------------*
FRPG100D CF E WORKSTN
F KINFDS WSINF
*---------------------------------------------------------------*
* 品目マスター M/F : INDEX KLIST=KEYPR
*---------------------------------------------------------------*
FCDMPR UF E K DISK A
*===============================================================*
* ARRAY
*===============================================================*
E CMD 1 2 78 CMD KEY情報
E MOD 1 4 6 モード
E MSG 1 15 78 メッセージ
E COIBM 1 1 76 COPYRIGHT IBM
*===============================================================*
* DS
*===============================================================*
* +--------------------------------------------------+
* | コントロールフラグの、処理
* | WDSP 画面処理のトリガー
* | WUPD 更新処理のトリガー
* | WLOOP 同一画面処理の繰り返し制御
* | WCLR1 第一画面クリア
* | WCLR2 第二画面クリア
* | WERR1 第一画面エラー制御
* | WERR2 第二画面エラー制御
* | WERR3 第三画面エラー制御
* | WERR9 ファイル更新エラー
* | WMOD 処理モード判別フラグ
* | WCHG データ変更判別フラグ
* | WFRST 一回目の制御フラグ
* | WDLT 削除確認フラグ
* +--------------------------------------------------+
IWCTL DS
I 1 1 WDSP
I 2 2 WUPD
I 3 3 WLOOP
I 4 4 WCLR1
I 5 5 WCLR2
I 6 6 WERR1
I 7 7 WERR2
I 8 8 WERR3
I 9 9 WERR9
I 10 10 WMOD
I 11 11 WCHG
I 12 12 WFRST
I 13 13 WDLT
*<<システム日付>>
I DS
I 1 140WKDATE
I 1 60WKTIME
I 7 140WKDAT8
I 9 140WKDAT6
*----------------------------*
* PROGRAM DATA STRUCTURE *
*----------------------------*
I SDS
I *PROGRAM WKPGM
I 244 253 WWSID
I 254 263 WUSER
*----------------------------*
* WORKSTN DATA STRUCTURE *
*----------------------------*
*<<罫線>>
IS#KBFR DS
I 1 1 X2F
I 2 2 KBFR
*<<カーソル制御>>
IWSINF DS
I 370 370 WLINE
I 371 371 WCOLM
I B 378 3790WGYO
I DS
I B 1 20W1LIN
I 1 1 W1LIN2
I 2 2 W1LIN1
I B 3 40W1COL
I 3 3 W1COL2
I 4 4 W1COL1
*<<コミット制御>>
ICMTID DS
I 1 10 USER
I 11 20 PGMN
IP@MDTA DS
I P 1 80P@M01
I P 9 160P@M02
I 17 32 P@M03
I 33 62 P@M04
I P 63 640P@M05
*<<発注日>>
I DS
I 1 80WKHCDT 発注� �
I 1 40WKHCYR 発注� �
I 5 60WKHCMT 発注� �
I 7 80WKHCDY 発注� �
*<<納品日>>
I DS
I 1 80WKNHDT 納品� �
I 1 40WKNHYR 納品� �
I 5 60WKNHMT 納品� �
I 7 80WKNHDY 納品� �
C/EJECT
C MOVELCOIBM COIBM COPYRIGHT IBM
*===============================================================*
* PLIST
*===============================================================*
*===============================================================*
* KLIST
*===============================================================*
*<<品目マスター>>
C KEYPR KLIST
C KFLD PRPRCD 品番
*===============================================================*
* MAIN ROUTINE
*===============================================================*
*<< 初期設定 >>
C EXSR SBINZ 初期設定処理
*
C DO *HIVAL
*<<画面処理>>
C WDSP CASEQ'1' SB1000 第一画面処理
C WDSP CASEQ'2' SB2000 第二画面処理
C WDSP CASEQ'9' SBEND 終了処理
C ENDCS
*<<更新処理>>
+C WUPD IFEQ '1'
|C EXSR SBUPD 更新処理
+C ENDIF
*
C ENDDO
*==============================================================*
* SBINZ ワークフィールドの初期設定
*==============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : ワークフィールドの初期設定
* | OUTPUT :
* +------------------------------------------------------+
C SBINZ BEGSR
*<<画面クリア>>
C CLEARFMT10 FMT10-CLEAR
C CLEARFMT20 FMT20-CLEAR
*<< WORK FILDの定義を行う。>>
C Z-ADD*ZERO WKHDIV 80 発注日(商)
C Z-ADD*ZERO WKHMVR 80 発注日(剰余)
C Z-ADD*ZERO WKNDIV 80 納品日(商)
C Z-ADD*ZERO WKNMVR 80 納品日(剰余)
C MOVEL'0' WKEMSG 1 エラーメッセージフラグ
C MOVEL'0' WKURYR 1 閏年フラグ
*<<フィールドの初期設定を行う。>>
C MOVELWKPGM D1PGID プログラム ID
C MOVEL'1' WCLR1 第一画面クリアー
C MOVEL'W' WMOD モード(初期値:登録)
C SETON 99 オーバーフロー標識ON
*<<画面メッセージCTL SFLEND >>
C SETON 22
*
C MOVEL'1' WDSP
*
C ENDSR
*===============================================================*
* SB1000 第一画面ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 第一画面処理
* | OUTPUT :
* +------------------------------------------------------+
C SB1000 BEGSR
*<<第一画面クリアルーチン>>
+C WCLR1 IFEQ '1'
|C EXSR SB1CR
+C ENDIF
*<<第一画面初期設定ルーチン>>
C EXSR SB1IZ
*<<入力制御>>
+C WMOD IFEQ 'W'
|C WMOD OREQ 'U'
|C SETOF 30
|C ELSE
|C SETON 30
+C ENDIF
*<<第一画面出力>>
C EXFMTFMT10
*<< MESSEGE CLEAR >>
+C *INKC IFEQ '0'
|C *INKE ANDEQ'0'
|C MOVEL*BLANK D1MSG
+C ENDIF
+-C SELEC
| *<< CMD3終了処理>>
| C *INKC WHEQ '1'
| C MOVEL'9' WDSP
| *<< CMD5モード切替>>
| C *INKE WHEQ '1'
| C EXSR SB1KE
| *<<実行キー(CMD3以外)処理>>
| C OTHER
| *<<第一画面チェックルーチン>>
| C EXSR SB1CK
| *<<エラーなし;第二画面処理>>
|+C WERR1 IFEQ '0'
||C MOVEL'2' WDSP
||C MOVEL'1' WCLR2
|+C ENDIF
+-C ENDSL
*
C ENDSR
*===============================================================*
* SB1CR 第一画面クリアルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 第一画面のクリア処理
* | OUTPUT :
* +------------------------------------------------------+
C SB1CR BEGSR
*
*<<第一画面クリアーを行なう。>>
C CLEARFMT10 FMT10-CLEAR
*<<エラーフラグOFFを行なう。 >>
C MOVEL'0' WERR1 代表エラーフラグ
*<<クリアー・フラグ >>
C MOVEL'0' WCLR1 第一画面クリアー
C MOVEL'1' WCLR2 第二画面クリアー
*
C ENDSR
*===============================================================*
* SB1IZ 第一画面クリアルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 第一画面のクリア処理
* | OUTPUT :
* +------------------------------------------------------+
C SB1IZ BEGSR
*
C TIME WKDATE
C Z-ADDWKDAT6 D1DAT6 日付
C Z-ADDWKTIME D1TIME 時刻
*
C MOVELWKPGM D1PGID プログラムID
C MOVELCMD,1 D1CMD CMD KEY情報
*<<処理モードのセット>>
+C SELEC
|C WMOD WHEQ 'W'
|C MOVELMOD,1 D1MOD
|C WMOD WHEQ 'U'
|C MOVELMOD,2 D1MOD
|C WMOD WHEQ 'D'
|C MOVELMOD,3 D1MOD
|C WMOD WHEQ 'S'
|C MOVELMOD,4 D1MOD
+C ENDSL
*
C SETOF 30 画面プロテクト = OFF
*
C ENDSR
*===============================================================*
* SB1KE モード切替ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : モード切替処理
* | OUTPUT :
* +------------------------------------------------------+
C SB1KE BEGSR
*
C SELEC
C WMOD WHEQ 'W'
C MOVEL'U' WMOD
C WMOD WHEQ 'U'
C MOVEL'D' WMOD
C WMOD WHEQ 'D'
C MOVEL'S' WMOD
C WMOD WHEQ 'S'
C MOVEL'W' WMOD
C ENDSL
*
C ENDSR
*===============================================================*
* SB1CK 第一画面チェックルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 第一画面の入力フィールドすべて
* | PROCESS : エラーチェック
* | エラーがあればWERR1 ON
* | OUTPUT : 第一画面の入出力フィールドすべて
* | 画面の出力フィールドすべて
* | WERR1 (エラーフラグ)
* +------------------------------------------------------+
C SB1CK BEGSR
*<<エラーフラグOFF>>
C MOVEL'0' WERR1
C MOVEL'0' WKEMSG
*<<入力チェックを行う。>>
C EXSR SB1CK1 品番チェック
*
C ENDSR
*===============================================================*
* SB1CK1 品番チェック
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 画面入力フィールド D1PRC1
* | PROCESS : 画面の入力チェック
* | OUTPUT : *IN40
* +------------------------------------------------------+
C SB1CK1 BEGSR
*
C SETOF 50
*<<未入力はエラー>>
+-C D1PRCD IFEQ *BLANK
| C SETON 50
| C MOVEL'1' WERR1
| *
|+C WKEMSG IFEQ '0'
||C MOVELMSG,1 D1MSG
|+C ENDIF
| *
+-C ENDIF
*<<品目マスターチェック>>
C MOVELD1PRCD PRPRCD 品番
C KEYPR CHAINPRR01 N90
*<<登録>>
+--C WMOD IFEQ 'W' 登録
|+-C *IN90 IFEQ *OFF
|| *<<登録の時、品目マスターに存在する場合はエラー。>>
|| C SETON 50
|| C MOVEL'1' WERR1
|| *
||+C WKEMSG IFEQ '0'
|||C MOVELMSG,2 D1MSG
||+C ENDIF
|| *
|+-C ENDIF
| *<<変更・削除・表示>>
| C ELSE 変更・削除・表示
|+-C *IN90 IFEQ *ON
|| *<<登録以外の時、品目マスターに存在しない場合はエラー。>>
|| C SETON 50
|| C MOVEL'1' WERR1
|| *
||+C WKEMSG IFEQ '0'
|||C MOVELMSG,3 D1MSG
||+C ENDIF
|| *
|+-C ENDIF
+--C ENDIF
*
C ENDSR
*===============================================================*
* SB2000 第二画面ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 第二画面処理
* | OUTPUT :
* +------------------------------------------------------+
C SB2000 BEGSR
*
*<<第二画面初期設定ルーチン>>
C EXSR SB2IZ
*<<入力制御>>
+C WMOD IFEQ 'W'
|C WMOD OREQ 'U'
|C SETOF 30
|C ELSE
|C SETON 30
+C ENDIF
*<<第二画面出力>>
C EXFMTFMT20
*<< MESSEGE CLEAR >>
+C *INKC IFEQ '0'
|C *INKL ANDEQ'0'
|C MOVEL*BLANK D2MSG
+C ENDIF
+---C SELEC
| *<< CMD3終了処理>>
| C *INKC WHEQ '1'
| C MOVEL'9' WDSP
| *<< CMD12前画面>>
| C *INKL WHEQ '1'
| C MOVEL'1' WDSP
| *<<実行キー(CMD3,12以外)処理>>
| C OTHER
| +C WMOD IFEQ 'S' 照会モード
| |C MOVEL'0' WFRST 1回目フラグ
| |C MOVEL'0' WDLT 全件削除フラグ
| |C MOVEL'0' WCLR2 クリアフラグ
| |C ELSE
| | *<<第一画面チェックルーチン>>
| |C EXSR SB2CK
| +C ENDIF
| *<<エラーなし;第二画面処理>>
|+--C WERR2 IFEQ '1'
|| C *IN70 OREQ *ON MDT標識
|| C WFRST OREQ '1' 一回目フラグ
|| *<<エラーなし,MDT ONのときメッセージ出力>>
||+-C WERR2 IFEQ '0' 代表エラーフラグ
|||+C SELEC
||||C WMOD WHEQ 'W'
||||C MOVELMSG,8 D2MSG
||||C WMOD WHEQ 'U'
||||C MOVELMSG,9 D2MSG
||||C WMOD WHEQ 'D'
||||C MOVELMSG,10 D2MSG
||||C OTHER
||||C MOVEL*BLANK D2MSG
|||+C ENDSL
||+-C ENDIF
|| *
|| C MOVEL'0' WFRST 1回目フラグ
|| C MOVEL'0' WDLT 全件削除フラグ
|| C MOVEL'0' WCLR2 クリアフラグ
|| *<<エラーなし;更新&第四画面処理>>
|| C ELSE
|| C MOVEL'1' WFRST 1回目フラグ
|| C MOVEL'0' WLOOP ループせずに
|| C MOVEL'1' WDSP 画面処理
|| C MOVEL'1' WUPD 更新処理へ
|+--C ENDIF
| *
+---C ENDSL
*
C ENDSR
*==============================================================*
* SB2IZ 第二画面初期化ルーチン
*==============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROSESS : 第二画面の初期設定
* | OUTPUT :
* +------------------------------------------------------+
C SB2IZ BEGSR
*
C TIME WKDATE
C Z-ADDWKDAT6 D2DAT6 日付
C Z-ADDWKTIME D2TIME 時刻
*
C MOVELWKPGM D2PGID プログラムID
C MOVELD1MOD D2MOD 処理モード
C MOVELCMD,2 D2CMD CMD KEY情報
*
+C WCLR2 IFEQ '1'
| *<<明細画面項目セット>>
|C EXSR SB2SET フィールドセット
+C ENDIF
*
C ENDSR
*===============================================================*
* SB2SET 明細画面セットルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT : CDMPR
* | PROSESS : 明細画面のフィールドセットを行う。
* | OUTPUT : FMT20,FMT30
* +------------------------------------------------------+
C SB2SET BEGSR
*<<登録>>
+-C WMOD IFEQ 'W' 登録
| C MOVELD1PRCD D2PRCD 品番
| C MOVEL*BLANK D2PRRK 品名
| C MOVEL*BLANK D2SRCD 仕入先コード
| C MOVEL*BLANK D2ZMBN 図面番号
| C MOVEL*BLANK D2PRTP 品目タイプ
| C Z-ADD*ZERO D2TEIK 定価
| C Z-ADD*ZERO D2GENK 原価
| C Z-ADD*ZERO D2GSUR 当月売上数量
| C Z-ADD*ZERO D2NSUR 当年売上数量
| C Z-ADD*ZERO D2HCDT 発注日
| C ELSE
| *<<変更・削除・表示>>
| C MOVELD1PRCD PRPRCD 品番
| C KEYPR CHAINPRR01 N90
| *<<品目マスターよりセット>>
|+C *IN90 IFEQ *OFF
||C MOVELD1PRCD D2PRCD 品番
||C MOVELPRPRRK D2PRRK 品名
||C MOVELPRSRCD D2SRCD 仕入先コード
||C MOVELPRZMBN D2ZMBN 図面番号
||C MOVELPRPRTP D2PRTP 品目タイプ
||C Z-ADDPRTEIK D2TEIK 定価
||C Z-ADDPRGENK D2GENK 原価
||C Z-ADDPRNSUR D2GSUR 当月売上数量
||C Z-ADDPRNSUR D2NSUR 当年売上数量
||C Z-ADDPRHCDT D2HCDT 発注日
|+C ENDIF
| *
+-C ENDIF
*
C ENDSR
*===============================================================*
* SB2CK 第二画面チェックルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 第二画面の入力フィールドすべて
* | PROCESS : エラーチェック
* | エラーがあればWERR2 ON
* | OUTPUT : 第二画面の入出力フィールドすべて
* | 第二画面の出力フィールドすべて
* | WERR2 (エラーフラグ)
* | *IN70 (MDTフラグ)
* +------------------------------------------------------+
C SB2CK BEGSR
*<<エラーフラグOFF>>
C MOVEL'0' WERR2
C MOVEL'0' WKEMSG
*<<入力チェックを行う。>>
C EXSR SB2CK1 品名
C EXSR SB2CK2 品目タイプ
C EXSR SB2CK3 発注日
*
C ENDSR
*===============================================================*
* SB2CK1 品名チェック
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 画面入力フィールド D2PRRK
* | PROCESS : 画面の入力チェック
* | OUTPUT : *IN42
* +------------------------------------------------------+
C SB2CK1 BEGSR
*
C SETOF 51
*<<未入力はエラー>>
+-C D2PRRK IFEQ *BLANK
| C SETON 51
| C MOVEL'1' WERR2
| *
|+C WKEMSG IFEQ '0'
||C MOVELMSG,4 D2MSG
||C MOVEL'1' WKEMSG
|+C ENDIF
| *
+-C ENDIF
*
C ENDSR
*===============================================================*
* SB2CK2 品目タイプチェック
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 画面入力フィールド D2HCDT
* | PROCESS : 画面の入力チェック
* | OUTPUT : *IN51
* +------------------------------------------------------+
C SB2CK2 BEGSR
*
C SETOF 52
*<<未入力はエラー>>
+-C D2PRTP IFEQ *BLANK
| C SETON 52
| C MOVEL'1' WERR2
| *
|+C WKEMSG IFEQ '0'
||C MOVELMSG,5 D2MSG
||C MOVEL'1' WKEMSG
|+C ENDIF
| *
+-C ENDIF
*<<1,2以外はエラー>>
+-C D2PRTP IFNE '1'
| C D2PRTP ANDNE'2'
| C SETON 52
| C MOVEL'1' WERR2
|+ *
||C WKEMSG IFEQ '0'
||C MOVELMSG,6 D2MSG
||C MOVEL'1' WKEMSG
|+C ENDIF
| *
+-C ENDIF
*
C ENDSR
*===============================================================*
* SB2CK3 発注日チェック
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 画面入力フィールド D2PRTP
* | PROCESS : 画面の入力チェック
* | OUTPUT : *IN52
* +------------------------------------------------------+
C SB2CK3 BEGSR
*
C SETOF 53
*<<未入力はシステム日付をセット>>
+C D2HCDT IFEQ *ZERO
|C TIME WKDATE
|C Z-ADDWKDAT8 D2HCDT
+C ENDIF
*<<存在しない日付はエラー>>
C Z-ADDD2HCDT WKHCDT
*
+----C SELEC
| *<<13月以降はエラー>>
| C WKHCMT WHGT 12
| C SETON 53
| C MOVEL'1' WERR2
| *
| +C WKEMSG IFEQ '0'
| |C MOVELMSG,7 D2MSG
| |C MOVEL'1' WKEMSG
| +C ENDIF
| *<<31日までの月>>
| C WKHCMT WHEQ 1
| C WKHCMT OREQ 3
| C WKHCMT OREQ 5
| C WKHCMT OREQ 7
| C WKHCMT OREQ 8
| C WKHCMT OREQ 10
| C WKHCMT OREQ 12
| *<<31日より大きい場合はエラー>>
| +-C WKHCDY IFGT 31
| | C SETON 53
| | C MOVEL'1' WERR2
| | *
| |+C WKEMSG IFEQ '0'
| ||C MOVELMSG,7 D2MSG
| ||C MOVEL'1' WKEMSG
| |+C ENDIF
| | *
| +-C ENDIF
| *<<30日までの月>>
| C WKHCMT WHEQ 4
| C WKHCMT OREQ 6
| C WKHCMT OREQ 9
| C WKHCMT OREQ 11
| *<<30日より大きい場合はエラー>>
| +-C WKHCDY IFGT 30
| | C SETON 53
| | C MOVEL'1' WERR2
| | *
| |+C WKEMSG IFEQ '0'
| ||C MOVELMSG,7 D2MSG
| ||C MOVEL'1' WKEMSG
| |+C ENDIF
| | *
| +-C ENDIF
| *<<2月>>
| C WKHCMT WHEQ 2
| *
| C MOVEL'0' WKURYR 閏年フラグ
| C Z-ADD*ZERO WKHDIV 納品日(商)
| C Z-ADD*ZERO WKHMVR 納品日(剰余)
| *
| C WKHCYR DIV 4 WKHDIV
| C MVR WKHMVR
| +--C WKHMVR IFEQ *ZERO 4で割り切れる
| | C WKHCYR DIV 100 WKHDIV
| | C MVR WKHMVR
| |+-C WKHMVR IFEQ *ZERO 100で割り切れる
| || C WKHCYR DIV 400 WKHDIV
| || C MVR WKHMVR
| ||+C WKHMVR IFEQ *ZERO 400で割り切れる
| |||C MOVEL'1' WKURYR 閏年フラグ
| ||+C ENDIF
| || C ELSE
| || C MOVEL'1' WKURYR 閏年フラグ
| |+-C ENDIF
| +--C ENDIF
| *<<閏年>>
| +--C WKURYR IFEQ '1'
| | *<<29日より大きい場合はエラー>>
| |+-C WKHCDY IFGT 29
| || C SETON 53
| || C MOVEL'1' WERR2
| || *
| ||+C WKEMSG IFEQ '0'
| |||C MOVELMSG,7 D2MSG
| |||C MOVEL'1' WKEMSG
| ||+C ENDIF
| || *
| |+-C ENDIF
| | C ELSE
| | *<<28日より大きい場合はエラー>>
| |+-C WKHCDY IFGT 28
| || C SETON 53
| || C MOVEL'1' WERR2
| || *
| ||+C WKEMSG IFEQ '0'
| |||C MOVELMSG,7 D2MSG
| |||C MOVEL'1' WKEMSG
| ||+C ENDIF
| || *
| |+-C ENDIF
| +--C ENDIF
+----C ENDSL
*
C ENDSR
*===============================================================*
* SBUPD 登録ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 登録処理
* | OUTPUT :
* +------------------------------------------------------+
C SBUPD BEGSR
*
C MOVEL'0' WERR9 ファイル更新エラー
*
+C SELEC
|C WMOD WHEQ 'W'
|C EXSR SBWRT
|C WMOD WHEQ 'U'
|C EXSR SBUPT
|C WMOD WHEQ 'D'
|C EXSR SBDLT
+C ENDSL
*
C MOVEL*BLANK D1PRCD 品番
C MOVEL'0' WUPD 更新処理のトリガー
C MOVEL'0' WCLR1 第一画面クリアー
*
C ENDSR
*===============================================================*
* SBWRT 登録ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 登録処理
* | OUTPUT :
* +------------------------------------------------------+
C SBWRT BEGSR
*
C MOVELD2PRCD PRPRCD 品番
C MOVELD2PRCD PRPRCD 品番
C MOVELD2PRRK PRPRRK 品名
C MOVELD2SRCD PRSRCD 仕入先コード
C MOVELD2ZMBN PRZMBN 図面番号
C MOVELD2PRTP PRPRTP 品目タイプ
C Z-ADDD2TEIK PRTEIK 定価
C Z-ADDD2GENK PRGENK 原価
C Z-ADDD2GSUR PRNSUR 当月売上数量
C Z-ADDD2NSUR PRNSUR 当年売上数量
C Z-ADDD2HCDT PRHCDT 発注日
*<<計算項目セット>>
C D2GENK MULT D2GSUR PRGGNK 当月売上原価
C D2GENK MULT D2NSUR PRNGNK 当年売上原価
C D2TEIK MULT D2GSUR PRGKIN 当月売上金額
C D2TEIK MULT D2NSUR PRNKIN 当年売上金額
*<<納品日(発注日+ 10日)>>
C Z-ADDD2HCDT WKHCDT 発注日
C WKHCDT ADD 10 WKNHDT 納品日
*
+---C SELEC
| *<<31日までの月>>
| C WKNHMT WHEQ 1
| C WKNHMT OREQ 3
| C WKNHMT OREQ 5
| C WKNHMT OREQ 7
| C WKNHMT OREQ 8
| C WKNHMT OREQ 10
| C WKNHMT OREQ 12
| *<<31日より大きい場合は月加算>>
| +-C WKNHDY IFGT 31
| | C ADD 1 WKNHMT 月加算
| | *<<12月のみ年加算>>
| |+C WKNHMT IFEQ 12
| ||C ADD 1 WKNHYR 年加算
| |+C ENDIF
| | *<<日付変換>>
| |+C SELEC
| ||C WKNHDY WHEQ 32
| ||C Z-ADD1 WKNHDY 32日⇒1日
| ||C WKNHDY WHEQ 33
| ||C Z-ADD2 WKNHDY 33日⇒2日
| ||C WKNHDY WHEQ 34
| ||C Z-ADD3 WKNHDY 34日⇒3日
| ||C WKNHDY WHEQ 35
| ||C Z-ADD4 WKNHDY 35日⇒4日
| ||C WKNHDY WHEQ 36
| ||C Z-ADD5 WKNHDY 36日⇒5日
| ||C WKNHDY WHEQ 37
| ||C Z-ADD6 WKNHDY 37日⇒6日
| ||C WKNHDY WHEQ 38
| ||C Z-ADD7 WKNHDY 38日⇒7日
| ||C WKNHDY WHEQ 39
| ||C Z-ADD8 WKNHDY 39日⇒8日
| ||C WKNHDY WHEQ 40
| ||C Z-ADD9 WKNHDY 40日⇒9日
| ||C WKNHDY WHEQ 41
| ||C Z-ADD10 WKNHDY 41日⇒10日
| |+C ENDSL
| +-C ENDIF
| *<<30日までの月>>
| C WKNHMT WHEQ 4
| C WKNHMT OREQ 6
| C WKNHMT OREQ 9
| C WKNHMT OREQ 11
| *<<30日より大きい場合は月加算>>
| +-C WKNHDY IFGT 30
| | C ADD 1 WKNHMT 月加算
| | *<<日付変換>>
| |+C SELEC
| ||C WKNHDY WHEQ 31
| ||C Z-ADD1 WKNHDY 31日⇒1日
| ||C WKNHDY WHEQ 32
| ||C Z-ADD2 WKNHDY 32日⇒2日
| ||C WKNHDY WHEQ 33
| ||C Z-ADD3 WKNHDY 33日⇒3日
| ||C WKNHDY WHEQ 34
| ||C Z-ADD4 WKNHDY 34日⇒4日
| ||C WKNHDY WHEQ 35
| ||C Z-ADD5 WKNHDY 35日⇒5日
| ||C WKNHDY WHEQ 36
| ||C Z-ADD6 WKNHDY 36日⇒6日
| ||C WKNHDY WHEQ 37
| ||C Z-ADD7 WKNHDY 37日⇒7日
| ||C WKNHDY WHEQ 38
| ||C Z-ADD8 WKNHDY 38日⇒8日
| ||C WKNHDY WHEQ 39
| ||C Z-ADD9 WKNHDY 39日⇒9日
| ||C WKNHDY WHEQ 40
| ||C Z-ADD10 WKNHDY 40日⇒10日
| |+C ENDSL
| +-C ENDIF
| *<<2月>>
| C WKNHMT WHEQ 2
| *
| C MOVEL'0' WKURYR 閏年フラグ
| C Z-ADD*ZERO WKNDIV 納品日(商)
| C Z-ADD*ZERO WKNMVR 納品日(剰余)
| *
| C WKNHYR DIV 4 WKNDIV
| C MVR WKNMVR
|+--C WKNMVR IFEQ *ZERO 4で割り切れる
|| C WKNHYR DIV 100 WKNDIV
|| C MVR WKNMVR
||+-C WKNMVR IFEQ *ZERO 100で割り切れる
||| C WKNHYR DIV 400 WKNDIV
||| C MVR WKNMVR
|||+C WKNMVR IFEQ *ZERO 400で割り切れる
||||C MOVEL'1' WKURYR 閏年フラグ
|||+C ENDIF
||| C ELSE
||| C MOVEL'1' WKURYR 閏年フラグ
||+-C ENDIF
|+--C ENDIF
| *<<閏年>>
|+--C WKURYR IFEQ '1'
|| *<<29日より大きい場合は月加算>>
||+-C WKNHDY IFGT 29
||| C ADD 1 WKNHMT 月加算
||| *<<日付変換>>
|||+C SELEC
||||C WKNHDY WHEQ 30
||||C Z-ADD1 WKNHDY 30日⇒1日
||||C WKNHDY WHEQ 31
||||C Z-ADD2 WKNHDY 31日⇒2日
||||C WKNHDY WHEQ 32
||||C Z-ADD3 WKNHDY 32日⇒3日
||||C WKNHDY WHEQ 33
||||C Z-ADD4 WKNHDY 33日⇒4日
||||C WKNHDY WHEQ 34
||||C Z-ADD5 WKNHDY 34日⇒5日
||||C WKNHDY WHEQ 35
||||C Z-ADD6 WKNHDY 35日⇒6日
||||C WKNHDY WHEQ 36
||||C Z-ADD7 WKNHDY 36日⇒7日
||||C WKNHDY WHEQ 37
||||C Z-ADD8 WKNHDY 37日⇒8日
||||C WKNHDY WHEQ 38
||||C Z-ADD9 WKNHDY 38日⇒9日
||||C WKNHDY WHEQ 39
||||C Z-ADD10 WKNHDY 39日⇒10日
|||+C ENDSL
||+-C ENDIF
|| C ELSE
|| *<<28日より大きい場合は月加算>>
||+-C WKNHDY IFGT 28
||| C ADD 1 WKNHMT 月加算
||| *<<日付変換>>
|||+C SELEC
||||C WKNHDY WHEQ 29
||||C Z-ADD1 WKNHDY 29日⇒1日
||||C WKNHDY WHEQ 30
||||C Z-ADD2 WKNHDY 30日⇒2日
||||C WKNHDY WHEQ 31
||||C Z-ADD3 WKNHDY 31日⇒3日
||||C WKNHDY WHEQ 32
||||C Z-ADD4 WKNHDY 32日⇒4日
||||C WKNHDY WHEQ 33
||||C Z-ADD5 WKNHDY 33日⇒5日
||||C WKNHDY WHEQ 34
||||C Z-ADD6 WKNHDY 34日⇒6日
||||C WKNHDY WHEQ 35
||||C Z-ADD7 WKNHDY 35日⇒7日
||||C WKNHDY WHEQ 36
||||C Z-ADD8 WKNHDY 36日⇒8日
||||C WKNHDY WHEQ 37
||||C Z-ADD9 WKNHDY 37日⇒9日
||||C WKNHDY WHEQ 38
||||C Z-ADD10 WKNHDY 38日⇒10日
|||+C ENDSL
||+-C ENDIF
|+--C ENDIF
+---C ENDSL
C Z-ADDWKNHDT PRNHDT 納品日
*<<作成・更新日時>>
C TIME WKDATE
C Z-ADDWKDAT8 PRCRDT 作成日
C Z-ADDWKDAT8 PRUPDT 最終更新日
C Z-ADDWKTIME PRCRTM 作成時刻
C Z-ADDWKTIME PRUPTM 最終更新時刻
*<<登録処理>>
C WRITEPRR01
*<<完了メッセージ>>
C MOVELMSG,11 D1MSG
*
C ENDSR
*===============================================================*
* SBUPT 更新ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 更新処理
* | OUTPUT :
* +------------------------------------------------------+
C SBUPT BEGSR
*
C MOVELD1PRCD PRPRCD 品番
*
C KEYPR CHAINPRR01 90
*
+----C *IN90 IFEQ *OFF
| *<<項目初期化>>
| C MOVEL*BLANK PRPRCD 品番
| C MOVEL*BLANK PRPRRK 品名
| C MOVEL*BLANK PRSRCD 仕入先コード
| C MOVEL*BLANK PRZMBN 図面番号
| C MOVEL*BLANK PRPRTP 品目タイプ
| C Z-ADD*ZERO PRTEIK 定価
| C Z-ADD*ZERO PRGENK 原価
| C Z-ADD*ZERO PRNSUR 当月売上数量
| C Z-ADD*ZERO PRNSUR 当年売上数量
| C Z-ADD*ZERO PRHCDT 発注日
| C Z-ADD*ZERO PRGGNK 当月売上原価
| C Z-ADD*ZERO PRNGNK 当年売上原価
| C Z-ADD*ZERO PRGKIN 当月売上金額
| C Z-ADD*ZERO PRNKIN 当年売上金額
| *<<項目セット>>
| C MOVELD2PRCD PRPRCD 品番
| C MOVELD2PRRK PRPRRK 品名
| C MOVELD2SRCD PRSRCD 仕入先コード
| C MOVELD2ZMBN PRZMBN 図面番号
| C MOVELD2PRTP PRPRTP 品目タイプ
| C Z-ADDD2TEIK PRTEIK 定価
| C Z-ADDD2GENK PRGENK 原価
| C Z-ADDD2GSUR PRNSUR 当月売上数量
| C Z-ADDD2NSUR PRNSUR 当年売上数量
| C Z-ADDD2HCDT PRHCDT 発注日
| C D2GENK MULT D2GSUR PRGGNK 当月売上原価
| C D2GENK MULT D2NSUR PRNGNK 当年売上原価
| C D2TEIK MULT D2GSUR PRGKIN 当月売上金額
| C D2TEIK MULT D2NSUR PRNKIN 当年売上金額
| *<<納品日(発注日+ 10日)>>
| C Z-ADDD2HCDT WKHCDT 発注日
| C WKHCDT ADD 10 WKNHDT 納品日
| *
|+---C SELEC
|| *<<31日までの月>>
|| C WKNHMT WHEQ 1
|| C WKNHMT OREQ 3
|| C WKNHMT OREQ 5
|| C WKNHMT OREQ 7
|| C WKNHMT OREQ 8
|| C WKNHMT OREQ 10
|| C WKNHMT OREQ 12
|| *<<31日より大きい場合は月加算>>
|| +-C WKNHDY IFGT 31
|| | C ADD 1 WKNHMT 月加算
|| | *<<12月のみ年加算>>
|| |+C WKNHMT IFEQ 12
|| ||C ADD 1 WKNHYR 年加算
|| |+C ENDIF
|| | *<<日付変換>>
|| |+C SELEC
|| ||C WKNHDY WHEQ 32
|| ||C Z-ADD1 WKNHDY 32日⇒1日
|| ||C WKNHDY WHEQ 33
|| ||C Z-ADD2 WKNHDY 33日⇒2日
|| ||C WKNHDY WHEQ 34
|| ||C Z-ADD3 WKNHDY 34日⇒3日
|| ||C WKNHDY WHEQ 35
|| ||C Z-ADD4 WKNHDY 35日⇒4日
|| ||C WKNHDY WHEQ 36
|| ||C Z-ADD5 WKNHDY 36日⇒5日
|| ||C WKNHDY WHEQ 37
|| ||C Z-ADD6 WKNHDY 37日⇒6日
|| ||C WKNHDY WHEQ 38
|| ||C Z-ADD7 WKNHDY 38日⇒7日
|| ||C WKNHDY WHEQ 39
|| ||C Z-ADD8 WKNHDY 39日⇒8日
|| ||C WKNHDY WHEQ 40
|| ||C Z-ADD9 WKNHDY 40日⇒9日
|| ||C WKNHDY WHEQ 41
|| ||C Z-ADD10 WKNHDY 41日⇒10日
|| |+C ENDSL
|| +-C ENDIF
|| *<<30日までの月>>
|| C WKNHMT WHEQ 4
|| C WKNHMT OREQ 6
|| C WKNHMT OREQ 9
|| C WKNHMT OREQ 11
|| *<<30日より大きい場合は月加算>>
|| +-C WKNHDY IFGT 30
|| | C ADD 1 WKNHMT 月加算
|| | *<<日付変換>>
|| |+C SELEC
|| ||C WKNHDY WHEQ 31
|| ||C Z-ADD1 WKNHDY 31日⇒1日
|| ||C WKNHDY WHEQ 32
|| ||C Z-ADD2 WKNHDY 32日⇒2日
|| ||C WKNHDY WHEQ 33
|| ||C Z-ADD3 WKNHDY 33日⇒3日
|| ||C WKNHDY WHEQ 34
|| ||C Z-ADD4 WKNHDY 34日⇒4日
|| ||C WKNHDY WHEQ 35
|| ||C Z-ADD5 WKNHDY 35日⇒5日
|| ||C WKNHDY WHEQ 36
|| ||C Z-ADD6 WKNHDY 36日⇒6日
|| ||C WKNHDY WHEQ 37
|| ||C Z-ADD7 WKNHDY 37日⇒7日
|| ||C WKNHDY WHEQ 38
|| ||C Z-ADD8 WKNHDY 38日⇒8日
|| ||C WKNHDY WHEQ 39
|| ||C Z-ADD9 WKNHDY 39日⇒9日
|| ||C WKNHDY WHEQ 40
|| ||C Z-ADD10 WKNHDY 40日⇒10日
|| |+C ENDSL
|| +-C ENDIF
|| *<<2月>>
|| C WKNHMT WHEQ 2
|| *
|| C MOVEL'0' WKURYR 閏年フラグ
|| C Z-ADD*ZERO WKNDIV 納品日(商)
|| C Z-ADD*ZERO WKNMVR 納品日(剰余)
|| *
|| C WKNHYR DIV 4 WKNDIV
|| C MVR WKNMVR
||+--C WKNMVR IFEQ *ZERO 4で割り切れる
||| C WKNHYR DIV 100 WKNDIV
||| C MVR WKNMVR
|||+-C WKNMVR IFEQ *ZERO 100で割り切れる
|||| C WKNHYR DIV 400 WKNDIV
|||| C MVR WKNMVR
||||+C WKNMVR IFEQ *ZERO 400で割り切れる
|||||C MOVEL'1' WKURYR 閏年フラグ
||||+C ENDIF
|||| C ELSE
|||| C MOVEL'1' WKURYR 閏年フラグ
|||+-C ENDIF
||+--C ENDIF
|| *<<閏年>>
||+--C WKURYR IFEQ '1'
||| *<<29日より大きい場合は月加算>>
|||+-C WKNHDY IFGT 29
|||| C ADD 1 WKNHMT 月加算
|||| *<<日付変換>>
||||+C SELEC
|||||C WKNHDY WHEQ 30
|||||C Z-ADD1 WKNHDY 30日⇒1日
|||||C WKNHDY WHEQ 31
|||||C Z-ADD2 WKNHDY 31日⇒2日
|||||C WKNHDY WHEQ 32
|||||C Z-ADD3 WKNHDY 32日⇒3日
|||||C WKNHDY WHEQ 33
|||||C Z-ADD4 WKNHDY 33日⇒4日
|||||C WKNHDY WHEQ 34
|||||C Z-ADD5 WKNHDY 34日⇒5日
|||||C WKNHDY WHEQ 35
|||||C Z-ADD6 WKNHDY 35日⇒6日
|||||C WKNHDY WHEQ 36
|||||C Z-ADD7 WKNHDY 36日⇒7日
|||||C WKNHDY WHEQ 37
|||||C Z-ADD8 WKNHDY 37日⇒8日
|||||C WKNHDY WHEQ 38
|||||C Z-ADD9 WKNHDY 38日⇒9日
|||||C WKNHDY WHEQ 39
|||||C Z-ADD10 WKNHDY 39日⇒10日
||||+C ENDSL
|||+-C ENDIF
||| C ELSE
||| *<<28日より大きい場合は月加算>>
|||+-C WKNHDY IFGT 28
|||| C ADD 1 WKNHMT 月加算
|||| *<<日付変換>>
||||+C SELEC
|||||C WKNHDY WHEQ 29
|||||C Z-ADD1 WKNHDY 29日⇒1日
|||||C WKNHDY WHEQ 30
|||||C Z-ADD2 WKNHDY 30日⇒2日
|||||C WKNHDY WHEQ 31
|||||C Z-ADD3 WKNHDY 31日⇒3日
|||||C WKNHDY WHEQ 32
|||||C Z-ADD4 WKNHDY 32日⇒4日
|||||C WKNHDY WHEQ 33
|||||C Z-ADD5 WKNHDY 33日⇒5日
|||||C WKNHDY WHEQ 34
|||||C Z-ADD6 WKNHDY 34日⇒6日
|||||C WKNHDY WHEQ 35
|||||C Z-ADD7 WKNHDY 35日⇒7日
|||||C WKNHDY WHEQ 36
|||||C Z-ADD8 WKNHDY 36日⇒8日
|||||C WKNHDY WHEQ 37
|||||C Z-ADD9 WKNHDY 37日⇒9日
|||||C WKNHDY WHEQ 38
|||||C Z-ADD10 WKNHDY 38日⇒10日
||||+C ENDSL
|||+-C ENDIF
||+--C ENDIF
|+---C ENDSL
| C Z-ADDWKNHDT PRNHDT 納品日
| *<<更新日時>>
| C TIME WKDATE
| C Z-ADDWKDAT8 PRUPDT 最終更新日
| C Z-ADDWKTIME PRUPTM 最終更新時刻
| *<<更新処理>>
| C UPDATPRR01
| *<<完了メッセージ>>
| C MOVELMSG,12 D1MSG
| *
+----C ENDIF
*
C ENDSR
*===============================================================*
* SBDLT 削除ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 削除処理
* | OUTPUT :
* +------------------------------------------------------+
C SBDLT BEGSR
*
C MOVELD1PRCD PRPRCD 品番
*
C KEYPR CHAINPRR01 90
*
+C *IN90 IFEQ *OFF
| *<<削除処理>>
|C DELETPRR01
| *<<完了メッセージ>>
|C MOVELMSG,13 D1MSG
| *
+C ENDIF
*
C ENDSR
*===============================================================*
* SBEND 終了ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : プログラムの終了を行う。
* | OUTPUT :
* +------------------------------------------------------+
C SBEND BEGSR
*
C SETON LR
C RETRN
*
C ENDSR
*===============================================================*
* テーブル
*===============================================================*
** * FOTTER
F3=終了F5=モード切替
F3=終了F12=前画面
** * MOD <<更新モード>>
登録
変更
削除
照会
**
品番に値が入力されていません。
入力された品番は品目マスターに既に存在します。
入力された品番は品目マスターに存在しません。
品名に値が入力されていません。
品目タイプに値が入力されていません。
品目タイプは指定可能な値ではありません。
発注日は指定可能な値ではありません。
実行キーで登録されます。
実行キーで更新されます。
実行キーで削除されます。
品目マスターへの登録が完了しました。
品目マスターの更新が完了しました。
品目マスターから削除が完了しました。
** * COPYRIGHT IBM
5754-AEP COPYRIGHT IBM CORP. 1995 LICENSED MATERIAL-PROGRAM PROPERTY OF IBM
rpg3画面ソース
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
* *
* COPYRIGHT IBM CORP. *
* *
* *
* *
* THIS MODULE IS "RESTRICTED MATERIALS OF IBM" *
* *
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
* DSP FILE ID. : RPG100D *
* DSP FILE記述: 品目マスター保守 *
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
A*%%EC
A DSPSIZ(24 80 *DS3)
A REF(*LIBL/PCRRM)
A CHGINPDFT
A IGCCNV(CF18 24)
A PRINT
*===============================================================*
* FMT10 FMT10 第1画面
*===============================================================*
A R FMT10
*
A OVERLAY
A BLINK
A CHANGE(70 'MDT フラグ')
A CA03
A CF05
A KEEP
*
A D1PGID 10A 1 3TEXT('プログラムID')
A 1 20'** 品目マスター保守 **'
A DSPATR(RI HI)
A D1MOD 6A 1 56TEXT('モード')
A DSPATR(RI HI)
A D1DAT6 6Y 0O 1 71TEXT('日付')
A EDTWRD('0 / / ')
A D1TIME 6Y 0O 2 71TEXT('時刻')
A EDTWRD(' : : ')
*
A 4 6'品 番'
A D1PRCD 20A B 4 21TEXT('品番')
A DSPATR(CS UL)
A 50 DSPATR(RI PC)
*
A D1CMD 78O O 23 1TEXT('コマンド')
A COLOR(BLU)
A D1MSG 78O O 24 1TEXT('メッセージ')
A COLOR(WHT)
*===============================================================*
* FMT20 FMT20 第2画面
*===============================================================*
A R FMT20
*
A OVERLAY
A BLINK
A CHANGE(70 'MDT フラグ')
A CA03
A CF12
A KEEP
*
A D2PGID 10A 1 3TEXT('プログラムID')
A 1 20'** 品目マスター保守 **'
A DSPATR(RI HI)
A D2MOD 6A 1 56TEXT('モード')
A DSPATR(RI HI)
A D2DAT6 6Y 0O 1 71TEXT('日付')
A EDTWRD('0 / / ')
A D2TIME 6Y 0O 2 71TEXT('時刻')
A EDTWRD(' : : ')
*
A 4 6'品 番'
A D2PRCD 20A B 4 21TEXT('品番')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
*
A 7 6'品 名'
A D2PRRK 22O B 7 21TEXT('品名')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A 51 DSPATR(RI PC)
*
A 9 6'仕入先コード'
A D2SRCD 5A B 9 21TEXT('仕入先コード')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
*
A 11 6'図面番号'
A D2ZMBN 20O B 11 21TEXT('図面番号')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
*
A 13 6'品目タイプ'
A D2PRTP 1A B 13 21TEXT('品目タイプ')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A 52 DSPATR(RI PC)
*
A 15 6'定 価'
A D2TEIK 11Y 0B 15 21TEXT('定価')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 15 40'原 価'
A D2GENK 11Y 0B 15 55TEXT('原価')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 17 6'当月売上数量'
A D2GSUR 11Y 0B 17 21TEXT('当月売上数量')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 17 40'当年売上数量'
A D2NSUR 11Y 0B 17 55TEXT('当年売上数量')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 19 6'発注日'
A D2HCDT 8Y 0B 19 21TEXT('発注日')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A 53 DSPATR(RI PC)
A EDTCDE(W)
*
A D2CMD 78O O 23 1TEXT('コマンド')
A COLOR(BLU)
A D2MSG 78O O 24 1TEXT('メッセージ')
A COLOR(WHT)
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
* *
* COPYRIGHT IBM CORP. *
* *
* *
* *
* THIS MODULE IS "RESTRICTED MATERIALS OF IBM" *
* *
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
* DSP FILE ID. : RPG100D *
* DSP FILE記述: 品目マスター保守 *
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
A*%%EC
A DSPSIZ(24 80 *DS3)
A REF(*LIBL/PCRRM)
A CHGINPDFT
A IGCCNV(CF18 24)
A PRINT
*===============================================================*
* FMT10 FMT10 第1画面
*===============================================================*
A R FMT10
*
A OVERLAY
A BLINK
A CHANGE(70 'MDT フラグ')
A CA03
A CF05
A KEEP
*
A D1PGID 10A 1 3TEXT('プログラムID')
A 1 20'** 品目マスター保守 **'
A DSPATR(RI HI)
A D1MOD 6A 1 56TEXT('モード')
A DSPATR(RI HI)
A D1DAT6 6Y 0O 1 71TEXT('日付')
A EDTWRD('0 / / ')
A D1TIME 6Y 0O 2 71TEXT('時刻')
A EDTWRD(' : : ')
*
A 4 6'品 番'
A D1PRCD 20A B 4 21TEXT('品番')
A DSPATR(CS UL)
A 50 DSPATR(RI PC)
*
A D1CMD 78O O 23 1TEXT('コマンド')
A COLOR(BLU)
A D1MSG 78O O 24 1TEXT('メッセージ')
A COLOR(WHT)
*===============================================================*
* FMT20 FMT20 第2画面
*===============================================================*
A R FMT20
*
A OVERLAY
A BLINK
A CHANGE(70 'MDT フラグ')
A CA03
A CF12
A KEEP
*
A D2PGID 10A 1 3TEXT('プログラムID')
A 1 20'** 品目マスター保守 **'
A DSPATR(RI HI)
A D2MOD 6A 1 56TEXT('モード')
A DSPATR(RI HI)
A D2DAT6 6Y 0O 1 71TEXT('日付')
A EDTWRD('0 / / ')
A D2TIME 6Y 0O 2 71TEXT('時刻')
A EDTWRD(' : : ')
*
A 4 6'品 番'
A D2PRCD 20A B 4 21TEXT('品番')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
*
A 7 6'品 名'
A D2PRRK 22O B 7 21TEXT('品名')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A 51 DSPATR(RI PC)
*
A 9 6'仕入先コード'
A D2SRCD 5A B 9 21TEXT('仕入先コード')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
*
A 11 6'図面番号'
A D2ZMBN 20O B 11 21TEXT('図面番号')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
*
A 13 6'品目タイプ'
A D2PRTP 1A B 13 21TEXT('品目タイプ')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A 52 DSPATR(RI PC)
*
A 15 6'定 価'
A D2TEIK 11Y 0B 15 21TEXT('定価')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 15 40'原 価'
A D2GENK 11Y 0B 15 55TEXT('原価')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 17 6'当月売上数量'
A D2GSUR 11Y 0B 17 21TEXT('当月売上数量')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 17 40'当年売上数量'
A D2NSUR 11Y 0B 17 55TEXT('当年売上数量')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 19 6'発注日'
A D2HCDT 8Y 0B 19 21TEXT('発注日')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A 53 DSPATR(RI PC)
A EDTCDE(W)
*
A D2CMD 78O O 23 1TEXT('コマンド')
A COLOR(BLU)
A D2MSG 78O O 24 1TEXT('メッセージ')
A COLOR(WHT)
RPGⅣ
rpg4物理ファイルソース
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
* *
* COPYRIGHT IBM CORP. *
* *
* *
* *
* THIS MODULE IS "RESTRICTED MATERIALS OF IBM" *
* *
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
*--------------------------------------------------------------*
* 物理ファイル名:CDMPR *
* :品目マスター *
*--------------------------------------------------------------*
A R PRR01 TEXT('品目マスター')
A PRPRCD 20A COLHDG('品番')
A PRPRRK 22A COLHDG('品名')
A PRSRCD 5A COLHDG('仕入先コード')
A PRZMBN 20A COLHDG('図面番号')
A PRPRTP 1A COLHDG('品目タイプ')
A PRTEIK 11S 0 COLHDG('定価')
A PRGENK 11S 0 COLHDG('原価')
A PRGSUR 11S 0 COLHDG('当月売上数量')
A PRNSUR 11S 0 COLHDG('当年売上数量')
A PRGGNK 11S 0 COLHDG('当月売上原価')
A PRNGNK 11S 0 COLHDG('当年売上原価')
A PRGKIN 11S 0 COLHDG('当月売上金額')
A PRNKIN 11S 0 COLHDG('当年売上金額')
A PRHCDT L DATFMT(*JIS)
A COLHDG('発注日')
A PRNHDT L DATFMT(*JIS)
A COLHDG('納品日')
A PRCRDT L DATFMT(*YMD)
A COLHDG('作成日')
A PRUPDT L DATFMT(*YMD)
A COLHDG('最終更新日')
A PRCRTM T TIMFMT(*JIS)
A COLHDG('作成時刻')
A PRUPTM T TIMFMT(*JIS)
A COLHDG('最終更新時刻')
*
A K PRPRCD
rpg4メイン機能ソース
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
* *
* 5754-AEP COPYRIGHT IBM CORP. 1995 LICENSED MATERIAL - *
* PROGRAM PROPERTY OF IBM *
* REFER TO COPYRIGHT INSTRUCTIONS FORM *
* NO. N:G120-2083 *
* THIS MODULE IS "RESTRICTED MATERIALS OF IBM" *
* *
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
* PROGRAM名 : RPG100 *
* PROGRAM記述 : 品目マスター保守 *
* *
* 更新日 : 2024/08/30 *
* *
* *
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
H DATEDIT(*YMD/)
*===============================================================*
* FILE
*===============================================================*
*---------------------------------------------------------------*
* 画面 : DISPLAY FILE
*---------------------------------------------------------------*
FRPG100D CF E WORKSTN
F INFDS(WSINF)
*---------------------------------------------------------------*
* 品目マスター M/F : INDEX KLIST=KEYPR
*---------------------------------------------------------------*
FCDMPRODUCTUF A E K DISK
*===============================================================*
* ARRAY
*===============================================================*
D CMD S 78 DIM(2) CTDATA PERRCD(1) CMD KEY情報
D MOD S 6 DIM(4) CTDATA PERRCD(1) モード
D MSG S 78 DIM(15) CTDATA PERRCD(1) メッセージ
D COIBM S 76 DIM(1) CTDATA PERRCD(1) COPYRIGHT IBM
*===============================================================*
* DS
*===============================================================*
* +--------------------------------------------------+
* | コントロールフラグの、処理
* | WDSP 画面処理のトリガー
* | WUPD 更新処理のトリガー
* | WLOOP 同一画面処理の繰り返し制御
* | WCLR1 第一画面クリア
* | WCLR2 第二画面クリア
* | WERR1 第一画面エラー制御
* | WERR2 第二画面エラー制御
* | WERR3 第三画面エラー制御
* | WERR9 ファイル更新エラー
* | WMOD 処理モード判別フラグ
* | WCHG データ変更判別フラグ
* | WFRST 一回目の制御フラグ
* | WDLT 削除確認フラグ
* +--------------------------------------------------+
D WCTL DS
D WDSP 1 1
D WUPD 2 2
D WLOOP 3 3
D WCLR1 4 4
D WCLR2 5 5
D WERR1 6 6
D WERR2 7 7
D WERR3 8 8
D WERR9 9 9
D WMOD 10 10
D WCHG 11 11
D WFRST 12 12
D WDLT 13 13
*<<システム日付>>
D DS
D WKDATE D DATFMT(*YMD) INZ(*SYS)
D WKTIME T TIMFMT(*HMS) INZ(*SYS)
*----------------------------*
* PROGRAM DATA STRUCTURE *
*----------------------------*
D SDS
D WKPGM *PROC
D WWSID 244 253
D WUSER 254 263
*----------------------------*
* WORKSTN DATA STRUCTURE *
*----------------------------*
*<<罫線>>
D S#KBFR DS
D X2F 1 1
D KBFR 2 2
*<<カーソル制御>>
D WSINF DS
D WLINE 370 370
D WCOLM 371 371
D WGYO 378 379B 0
D DS
D W1LIN 1 2B 0
D W1LIN2 1 1
D W1LIN1 2 2
D W1COL 3 4B 0
D W1COL2 3 3
D W1COL1 4 4
*<<コミット制御>>
D CMTID DS
D USER 1 10
D PGMN 11 20
D P@MDTA DS
D P@M01 1 8P 0
D P@M02 9 16P 0
D P@M03 17 32
D P@M04 33 62
D P@M05 63 64P 0
C/EJECT
C MOVEL COIBM COIBM COPYRIGHT IBM
*===============================================================*
* PLIST
*===============================================================*
*===============================================================*
* KLIST
*===============================================================*
*<<品目マスター>>
C KEYPR KLIST
C KFLD PRPRCD 品番
*===============================================================*
* MAIN ROUTINE
*===============================================================*
*<< 初期設定 >>
C EXSR SBINZ 初期設定処理
*
C DO *HIVAL
*<<画面処理>>
C WDSP CASEQ '1' SB1000 第一画面処理
C WDSP CASEQ '2' SB2000 第二画面処理
C WDSP CASEQ '9' SBEND 終了処理
C ENDCS
*<<更新処理>>
+C WUPD IFEQ '1'
|C EXSR SBUPD 更新処理
+C ENDIF
*
C ENDDO
*==============================================================*
* SBINZ ワークフィールドの初期設定
*==============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : ワークフィールドの初期設定
* | OUTPUT :
* +------------------------------------------------------+
C SBINZ BEGSR
*<<画面クリア>>
C CLEAR FMT10 FMT10-CLEAR
C CLEAR FMT20 FMT20-CLEAR
*<< WORK FILDの定義を行う。>>
C Z-ADD *ZERO WKHDIV 8 0 発注日(商)
C Z-ADD *ZERO WKHMVR 8 0 発注日(剰余)
C Z-ADD *ZERO WKNDIV 8 0 納品日(商)
C Z-ADD *ZERO WKNMVR 8 0 納品日(剰余)
C MOVEL '0' WKEMSG 1 エラーメッセージフラグ
C MOVEL '0' WKURYR 1 閏年フラグ
*<<フィールドの初期設定を行う。>>
C MOVEL WKPGM D1PGID プログラム ID
C MOVEL '1' WCLR1 第一画面クリアー
C MOVEL 'W' WMOD モード(初期値:登�
C SETON 99 オーバーフロー標識ON
*<<画面メッセージCTL SFLEND >>
C SETON 22
*
C MOVEL '1' WDSP
*
C ENDSR
*===============================================================*
* SB1000 第一画面ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 第一画面処理
* | OUTPUT :
* +------------------------------------------------------+
C SB1000 BEGSR
*<<第一画面クリアルーチン>>
+C WCLR1 IFEQ '1'
|C EXSR SB1CR
+C ENDIF
*<<第一画面初期設定ルーチン>>
C EXSR SB1IZ
*<<入力制御>>
+C WMOD IFEQ 'W'
|C WMOD OREQ 'U'
|C SETOFF 30
|C ELSE
|C SETON 30
+C ENDIF
*<<第一画面出力>>
C EXFMT FMT10
*<< MESSEGE CLEAR >>
+C *INKC IFEQ '0'
|C *INKE ANDEQ '0'
|C MOVEL *BLANK D1MSG
+C ENDIF
+-C SELECT
| *<< CMD3終了処理>>
| C *INKC WHENEQ '1'
| C MOVEL '9' WDSP
| *<< CMD5モード切替>>
| C *INKE WHENEQ '1'
| C EXSR SB1KE
| *<<実行キー(CMD3以外)処理>>
| C OTHER
| *<<第一画面チェックルーチン>>
| C EXSR SB1CK
| *<<エラーなし;第二画面処理>>
|+C WERR1 IFEQ '0'
||C MOVEL '2' WDSP
||C MOVEL '1' WCLR2
|+C ENDIF
+-C ENDSL
*
C ENDSR
*===============================================================*
* SB1CR 第一画面クリアルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 第一画面のクリア処理
* | OUTPUT :
* +------------------------------------------------------+
C SB1CR BEGSR
*
*<<第一画面クリアーを行なう。>>
C CLEAR FMT10 FMT10-CLEAR
*<<エラーフラグOFFを行なう。 >>
C MOVEL '0' WERR1 代表エラーフラグ
*<<クリアー・フラグ >>
C MOVEL '0' WCLR1 第一画面クリアー
C MOVEL '1' WCLR2 第二画面クリアー
*
C ENDSR
*===============================================================*
* SB1IZ 第一画面クリアルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 第一画面のクリア処理
* | OUTPUT :
* +------------------------------------------------------+
C SB1IZ BEGSR
*
C TIME WKDATE
C TIME WKTIME
C EVAL D1DAT6 = WKDATE 日付
C EVAL D1TIME = WKTIME 時刻
*
C MOVEL WKPGM D1PGID プログラムID
C MOVEL CMD(1) D1CMD CMD KEY情報
*<<処理モードのセット>>
+C SELECT
|C WMOD WHENEQ 'W'
|C MOVEL MOD(1) D1MOD
|C WMOD WHENEQ 'U'
|C MOVEL MOD(2) D1MOD
|C WMOD WHENEQ 'D'
|C MOVEL MOD(3) D1MOD
|C WMOD WHENEQ 'S'
|C MOVEL MOD(4) D1MOD
+C ENDSL
*
C SETOFF 30 画面プロテクト = OFF
*
C ENDSR
*===============================================================*
* SB1KE モード切替ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : モード切替処理
* | OUTPUT :
* +------------------------------------------------------+
C SB1KE BEGSR
*
C SELECT
C WMOD WHENEQ 'W'
C MOVEL 'U' WMOD
C WMOD WHENEQ 'U'
C MOVEL 'D' WMOD
C WMOD WHENEQ 'D'
C MOVEL 'S' WMOD
C WMOD WHENEQ 'S'
C MOVEL 'W' WMOD
C ENDSL
*
C ENDSR
*===============================================================*
* SB1CK 第一画面チェックルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 第一画面の入力フィールドすべて
* | PROCESS : エラーチェック
* | エラーがあればWERR1 ON
* | OUTPUT : 第一画面の入出力フィールドすべて
* | 画面の出力フィールドすべて
* | WERR1 (エラーフラグ)
* +------------------------------------------------------+
C SB1CK BEGSR
*<<エラーフラグOFF>>
C MOVEL '0' WERR1
C MOVEL '0' WKEMSG
*<<入力チェックを行う。>>
C EXSR SB1CK1 品番チェック
*
C ENDSR
*===============================================================*
* SB1CK1 品番チェック
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 画面入力フィールド D1PRC1
* | PROCESS : 画面の入力チェック
* | OUTPUT : *IN40
* +------------------------------------------------------+
C SB1CK1 BEGSR
*
C SETOFF 50
*<<未入力はエラー>>
+-C D1PRCD IFEQ *BLANK
| C SETON 50
| C MOVEL '1' WERR1
| *
|+C WKEMSG IFEQ '0'
||C MOVEL MSG(1) D1MSG
|+C ENDIF
| *
+-C ENDIF
*<<品目マスターチェック>>
C MOVEL D1PRCD PRPRCD 品番
C KEYPR CHAIN(N) PRR01 90
*<<登録>>
+--C WMOD IFEQ 'W' 登録
|+-C *IN90 IFEQ *OFF
|| *<<登録の時、品目マスターに存在する場合はエラー。>>
|| C SETON 50
|| C MOVEL '1' WERR1
|| *
||+C WKEMSG IFEQ '0'
|||C MOVEL MSG(2) D1MSG
||+C ENDIF
|| *
|+-C ENDIF
| *<<変更・削除・表示>>
| C ELSE 変更・削除・表示
|+-C *IN90 IFEQ *ON
|| *<<登録以外の時、品目マスターに存在しない場合はエラー。>>
|| C SETON 50
|| C MOVEL '1' WERR1
|| *
||+C WKEMSG IFEQ '0'
|||C MOVEL MSG(3) D1MSG
||+C ENDIF
|| *
|+-C ENDIF
+--C ENDIF
*
C ENDSR
*===============================================================*
* SB2000 第二画面ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 第二画面処理
* | OUTPUT :
* +------------------------------------------------------+
C SB2000 BEGSR
*
*<<第二画面初期設定ルーチン>>
C EXSR SB2IZ
*<<入力制御>>
+C WMOD IFEQ 'W'
|C WMOD OREQ 'U'
|C SETOFF 30
|C ELSE
|C SETON 30
+C ENDIF
*<<第二画面出力>>
C EXFMT FMT20
*<< MESSEGE CLEAR >>
+C *INKC IFEQ '0'
|C *INKL ANDEQ '0'
|C MOVEL *BLANK D2MSG
+C ENDIF
+---C SELECT
| *<< CMD3終了処理>>
| C *INKC WHENEQ '1'
| C MOVEL '9' WDSP
| *<< CMD12前画面>>
| C *INKL WHENEQ '1'
| C MOVEL '1' WDSP
| *<<実行キー(CMD3,12以外)処理>>
| C OTHER
| +C WMOD IFEQ 'S' 照会モード
| |C MOVEL '0' WFRST 1回目フラグ
| |C MOVEL '0' WDLT 全件削除フラグ
| |C MOVEL '0' WCLR2 クリアフラグ
| |C ELSE
| | *<<第一画面チェックルーチン>>
| |C EXSR SB2CK
| +C ENDIF
| *<<エラーなし;第二画面処理>>
|+--C WERR2 IFEQ '1'
|| C *IN70 OREQ *ON MDT標識
|| C WFRST OREQ '1' 一回目フラグ
|| *<<エラーなし,MDT ONのときメッセージ出力>>
||+-C WERR2 IFEQ '0' 代表エラーフラグ
|||+C SELECT
||||C WMOD WHENEQ 'W'
||||C MOVEL MSG(8) D2MSG
||||C WMOD WHENEQ 'U'
||||C MOVEL MSG(9) D2MSG
||||C WMOD WHENEQ 'D'
||||C MOVEL MSG(10) D2MSG
||||C OTHER
||||C MOVEL *BLANK D2MSG
|||+C ENDSL
||+-C ENDIF
|| *
|| C MOVEL '0' WFRST 1回目フラグ
|| C MOVEL '0' WDLT 全件削除フラグ
|| C MOVEL '0' WCLR2 クリアフラグ
|| *<<エラーなし;更新&第四画面処理>>
|| C ELSE
|| C MOVEL '1' WFRST 1回目フラグ
|| C MOVEL '0' WLOOP ループせずに
|| C MOVEL '1' WDSP 画面処理
|| C MOVEL '1' WUPD 更新処理へ
|+--C ENDIF
| *
+---C ENDSL
*
C ENDSR
*==============================================================*
* SB2IZ 第二画面初期化ルーチン
*==============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROSESS : 第二画面の初期設定
* | OUTPUT :
* +------------------------------------------------------+
C SB2IZ BEGSR
*
C TIME WKDATE
C TIME WKTIME
C EVAL D2DAT6 = WKDATE 日付
C EVAL D2TIME = WKTIME 時刻
*
C MOVEL WKPGM D2PGID プログラムID
C MOVEL D1MOD D2MOD 処理モード
C MOVEL CMD(2) D2CMD CMD KEY情報
*
+C WCLR2 IFEQ '1'
| *<<明細画面項目セット>>
|C EXSR SB2SET フィールドセット
+C ENDIF
*
C ENDSR
*===============================================================*
* SB2SET 明細画面セットルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT : CDMPR
* | PROSESS : 明細画面のフィールドセットを行う。
* | OUTPUT : FMT20,FMT30
* +------------------------------------------------------+
C SB2SET BEGSR
*<<登録>>
+-C WMOD IFEQ 'W' 登録
| C MOVEL D1PRCD D2PRCD 品番
| C MOVEL *BLANK D2PRRK 品名
| C MOVEL *BLANK D2SRCD 仕入先コード
| C MOVEL *BLANK D2ZMBN 図面番号
| C MOVEL *BLANK D2PRTP 品目タイプ
| C Z-ADD *ZERO D2TEIK 定価
| C Z-ADD *ZERO D2GENK 原価
| C Z-ADD *ZERO D2GSUR 当月売上数量
| C Z-ADD *ZERO D2NSUR 当年売上数量
| C TIME WKDATE
| C TIME WKTIME
| C EVAL D2HCDT = WKDATE
| C ELSE
| *<<変更・削除・表示>>
| C MOVEL D1PRCD PRPRCD 品番
| C KEYPR CHAIN(N) PRR01 90
| *<<品目マスターよりセット>>
|+C *IN90 IFEQ *OFF
||C MOVEL D1PRCD D2PRCD 品番
||C MOVEL PRPRRK D2PRRK 品名
||C MOVEL PRSRCD D2SRCD 仕入先コード
||C MOVEL PRZMBN D2ZMBN 図面番号
||C MOVEL PRPRTP D2PRTP 品目タイプ
||C Z-ADD PRTEIK D2TEIK 定価
||C Z-ADD PRGENK D2GENK 原価
||C Z-ADD PRNSUR D2GSUR 当月売上数量
||C Z-ADD PRNSUR D2NSUR 当年売上数量
||C EVAL D2HCDT = PRHCDT 発注日
|+C ENDIF
| *
+-C ENDIF
*
C ENDSR
*===============================================================*
* SB2CK 第二画面チェックルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 第二画面の入力フィールドすべて
* | PROCESS : エラーチェック
* | エラーがあればWERR2 ON
* | OUTPUT : 第二画面の入出力フィールドすべて
* | 第二画面の出力フィールドすべて
* | WERR2 (エラーフラグ)
* | *IN70 (MDTフラグ)
* +------------------------------------------------------+
C SB2CK BEGSR
*<<エラーフラグOFF>>
C MOVEL '0' WERR2
C MOVEL '0' WKEMSG
*<<入力チェックを行う。>>
C EXSR SB2CK1 品名
C EXSR SB2CK2 品目タイプ
*
C ENDSR
*===============================================================*
* SB2CK1 品名チェック
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 画面入力フィールド D2PRRK
* | PROCESS : 画面の入力チェック
* | OUTPUT : *IN42
* +------------------------------------------------------+
C SB2CK1 BEGSR
*
C SETOFF 51
*<<未入力はエラー>>
+-C D2PRRK IFEQ *BLANK
| C SETON 51
| C MOVEL '1' WERR2
| *
|+C WKEMSG IFEQ '0'
||C MOVEL MSG(4) D2MSG
||C MOVEL '1' WKEMSG
|+C ENDIF
| *
+-C ENDIF
*
C ENDSR
*===============================================================*
* SB2CK2 品目タイプチェック
*===============================================================*
* +------------------------------------------------------+
* | INPUT : 画面入力フィールド D2HCDT
* | PROCESS : 画面の入力チェック
* | OUTPUT : *IN51
* +------------------------------------------------------+
C SB2CK2 BEGSR
*
C SETOFF 52
*<<未入力はエラー>>
+-C D2PRTP IFEQ *BLANK
| C SETON 52
| C MOVEL '1' WERR2
| *
|+C WKEMSG IFEQ '0'
||C MOVEL MSG(5) D2MSG
||C MOVEL '1' WKEMSG
|+C ENDIF
| *
+-C ENDIF
*<<1,2以外はエラー>>
+-C D2PRTP IFNE '1'
| C D2PRTP ANDNE '2'
| C SETON 52
| C MOVEL '1' WERR2
|+ *
||C WKEMSG IFEQ '0'
||C MOVEL MSG(6) D2MSG
||C MOVEL '1' WKEMSG
|+C ENDIF
| *
+-C ENDIF
*
C ENDSR
*===============================================================*
* SBUPD 登録ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 登録処理
* | OUTPUT :
* +------------------------------------------------------+
C SBUPD BEGSR
*
C MOVEL '0' WERR9 ファイル更新エラー
*
+C SELECT
|C WMOD WHENEQ 'W'
|C EXSR SBWRT
|C WMOD WHENEQ 'U'
|C EXSR SBUPT
|C WMOD WHENEQ 'D'
|C EXSR SBDLT
+C ENDSL
*
C MOVEL *BLANK D1PRCD 品番
C MOVEL '0' WUPD 更新処理のトリガー
C MOVEL '0' WCLR1 第一画面クリアー
*
C ENDSR
*===============================================================*
* SBWRT 登録ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 登録処理
* | OUTPUT :
* +------------------------------------------------------+
C SBWRT BEGSR
*
C MOVEL D2PRCD PRPRCD 品番
C MOVEL D2PRCD PRPRCD 品番
C MOVEL D2PRRK PRPRRK 品名
C MOVEL D2SRCD PRSRCD 仕入先コード
C MOVEL D2ZMBN PRZMBN 図面番号
C MOVEL D2PRTP PRPRTP 品目タイプ
C Z-ADD D2TEIK PRTEIK 定価
C Z-ADD D2GENK PRGENK 原価
C Z-ADD D2GSUR PRNSUR 当月売上数量
C Z-ADD D2NSUR PRNSUR 当年売上数量
C EVAL PRHCDT = PRHCDT 発注日
*<<計算項目セット>>
C D2GENK MULT D2GSUR PRGGNK 当月売上原価
C D2GENK MULT D2NSUR PRNGNK 当年売上原価
C D2TEIK MULT D2GSUR PRGKIN 当月売上金額
C D2TEIK MULT D2NSUR PRNKIN 当年売上金額
*<<納品日(発注日+ 10日)>>
C EVAL PRNHDT = PRHCDT + %DAYS(10) 納品日
*<<作成・更新日時>>
C TIME WKDATE
C TIME WKTIME
C EVAL PRCRDT = WKDATE 作成日
C EVAL PRUPDT = WKDATE 最終更新日
C EVAL PRCRTM = WKTIME 作成時刻
C EVAL PRUPTM = WKTIME 最終更新時刻
*<<登録処理>>
C WRITE PRR01
*<<完了メッセージ>>
C MOVEL MSG(11) D1MSG
*
C ENDSR
*===============================================================*
* SBUPT 更新ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 更新処理
* | OUTPUT :
* +------------------------------------------------------+
C SBUPT BEGSR
*
C MOVEL D1PRCD PRPRCD 品番
*
C KEYPR CHAIN PRR01 90
*
+C *IN90 IFEQ *OFF
| *<<項目初期化>>
|C MOVEL *BLANK PRPRCD 品番
|C MOVEL *BLANK PRPRRK 品名
|C MOVEL *BLANK PRSRCD 仕入先コード
|C MOVEL *BLANK PRZMBN 図面番号
|C MOVEL *BLANK PRPRTP 品目タイプ
|C Z-ADD *ZERO PRTEIK 定価
|C Z-ADD *ZERO PRGENK 原価
|C Z-ADD *ZERO PRNSUR 当月売上数量
|C Z-ADD *ZERO PRNSUR 当年売上数量
|C Z-ADD *ZERO PRGGNK 当月売上原価
|C Z-ADD *ZERO PRNGNK 当年売上原価
|C Z-ADD *ZERO PRGKIN 当月売上金額
|C Z-ADD *ZERO PRNKIN 当年売上金額
| *<<項目セット>>
|C MOVEL D2PRCD PRPRCD 品番
|C MOVEL D2PRRK PRPRRK 品名
|C MOVEL D2SRCD PRSRCD 仕入先コード
|C MOVEL D2ZMBN PRZMBN 図面番号
|C MOVEL D2PRTP PRPRTP 品目タイプ
|C Z-ADD D2TEIK PRTEIK 定価
|C Z-ADD D2GENK PRGENK 原価
|C Z-ADD D2GSUR PRNSUR 当月売上数量
|C Z-ADD D2NSUR PRNSUR 当年売上数量
|C EVAL PRHCDT = D2HCDT 発注日
|C D2GENK MULT D2GSUR PRGGNK 当月売上原価
|C D2GENK MULT D2NSUR PRNGNK 当年売上原価
|C D2TEIK MULT D2GSUR PRGKIN 当月売上金額
|C D2TEIK MULT D2NSUR PRNKIN 当年売上金額
| *<<納品日(発注日+ 10日)>>
|C EVAL PRNHDT = PRHCDT + %DAYS(10) 納品日
| *<<更新日時>>
|C TIME WKDATE
|C TIME WKTIME
|C EVAL PRUPDT = WKDATE 作成時刻
|C EVAL PRUPTM = WKTIME 最終更新時刻
| *<<更新処理>>
|C UPDATE PRR01
| *<<完了メッセージ>>
|C MOVEL MSG(12) D1MSG
| *
+C ENDIF
*
C ENDSR
*===============================================================*
* SBDLT 削除ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : 削除処理
* | OUTPUT :
* +------------------------------------------------------+
C SBDLT BEGSR
*
C MOVEL D1PRCD PRPRCD 品番
*
C KEYPR CHAIN PRR01 90
*
+C *IN90 IFEQ *OFF
| *<<削除処理>>
|C DELETE PRR01
| *<<完了メッセージ>>
|C MOVEL MSG(13) D1MSG
| *
+C ENDIF
*
C ENDSR
*===============================================================*
* SBEND 終了ルーチン
*===============================================================*
* +------------------------------------------------------+
* | INPUT :
* | PROCESS : プログラムの終了を行う。
* | OUTPUT :
* +------------------------------------------------------+
C SBEND BEGSR
*
C SETON LR
C RETURN
*
C ENDSR
*===============================================================*
* テーブル
*===============================================================*
** * FOTTER
F3=終了F5=モード切替
F3=終了F12=前画面
** * MOD <<更新モード>>
登録
変更
削除
照会
**
品番に値が入力されていません。
入力された品番は品目マスターに既に存在します。
入力された品番は品目マスターに存在しません。
品名に値が入力されていません。
品目タイプに値が入力されていません。
品目タイプは指定可能な値ではありません。
発注日は指定可能な値ではありません。
実行キーで登録されます。
実行キーで更新されます。
実行キーで削除されます。
品目マスターへの登録が完了しました。
品目マスターの更新が完了しました。
品目マスターから削除が完了しました。
** * COPYRIGHT IBM
5754-AEP COPYRIGHT IBM CORP. 1995 LICENSED MATERIAL-PROGRAM PROPERTY OF IBM
rpg4画面ソース
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
* *
* COPYRIGHT IBM CORP. *
* *
* *
* *
* THIS MODULE IS "RESTRICTED MATERIALS OF IBM" *
* *
*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
* DSP FILE ID. : RPG100D *
* DSP FILE記述: 品目マスター保守 *
*・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・*
A*%%EC
A DSPSIZ(24 80 *DS3)
A REF(*LIBL/PCRRM)
A CHGINPDFT
A IGCCNV(CF18 24)
A PRINT
*===============================================================*
* FMT10 FMT10 第1画面
*===============================================================*
A R FMT10
*
A OVERLAY
A BLINK
A CHANGE(70 'MDT フラグ')
A CA03
A CF05
A KEEP
*
A D1PGID 10A 1 3TEXT('プログラムID')
A 1 20'** 品目マスター保守 **'
A DSPATR(RI HI)
A D1MOD 6A 1 56TEXT('モード')
A DSPATR(RI HI)
A D1DAT6 L O 1 71TEXT('日付')
A DATFMT(*YMD)
A*** EDTWRD('0 / / ')
A D1TIME T O 2 71TEXT('時刻')
A TIMFMT(*JIS)
*
A 4 6'品 番'
A D1PRCD 20A B 4 21TEXT('品番')
A DSPATR(CS UL)
A 50 DSPATR(RI PC)
*
A D1CMD 78O O 23 1TEXT('コマンド')
A COLOR(BLU)
A D1MSG 78O O 24 1TEXT('メッセージ')
A COLOR(WHT)
*===============================================================*
* FMT20 FMT20 第2画面
*===============================================================*
A R FMT20
*
A OVERLAY
A BLINK
A CHANGE(70 'MDT フラグ')
A CA03
A CF12
A KEEP
*
A D2PGID 10A 1 3TEXT('プログラムID')
A 1 20'** 品目マスター保守 **'
A DSPATR(RI HI)
A D2MOD 6A 1 56TEXT('モード')
A DSPATR(RI HI)
A D2DAT6 L O 1 71TEXT('日付')
A DATFMT(*YMD)
A D2TIME T O 2 71TEXT('時刻')
A TIMFMT(*JIS)
*
A 4 6'品 番'
A D2PRCD 20A B 4 21TEXT('品番')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
*
A 7 6'品 名'
A D2PRRK 22O B 7 21TEXT('品名')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A 51 DSPATR(RI PC)
*
A 9 6'仕入先コード'
A D2SRCD 5A B 9 21TEXT('仕入先コード')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
*
A 11 6'図面番号'
A D2ZMBN 20O B 11 21TEXT('図面番号')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
*
A 13 6'品目タイプ'
A D2PRTP 1A B 13 21TEXT('品目タイプ')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A 52 DSPATR(RI PC)
*
A 15 6'定 価'
A D2TEIK 11Y 0B 15 21TEXT('定価')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 15 40'原 価'
A D2GENK 11Y 0B 15 55TEXT('原価')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 17 6'当月売上数量'
A D2GSUR 11Y 0B 17 21TEXT('当月売上数量')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 17 40'当年売上数量'
A D2NSUR 11Y 0B 17 55TEXT('当年売上数量')
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A EDTCDE(J)
*
A 19 6'発注日'
A D2HCDT L B 19 21TEXT('発注日')
A DATFMT(*JIS)
A N30 DSPATR(CS UL)
A 30 DSPATR(PR)
A 53 DSPATR(RI PC)
*
A D2CMD 78O O 23 1TEXT('コマンド')
A COLOR(BLU)
A D2MSG 78O O 24 1TEXT('メッセージ')
A COLOR(WHT)