!!テーブル作成 {{code Text, 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 でコンパイル。 !!画面定義の作成 {{code Text, 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 でコンパイル。 !!帳票出力プログラムの作成 {{code Text, 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 のように、オブジェクトファイルを指定する。 画面を操作して、罫線をひく {{category2 プログラミング言語,RPG}}