移行ツール一覧 > Q言語コンバージョン・サービス > 帳票例 > プログラム例
Q言語コンバージョン・サービス
プログラム例
- プログラム名
- PRT001
- パラメータ
-
- 入力/出力
- 入力ファイル
-
レイアウト
項目 |
タイプ |
桁数 |
備考 |
取引先CD |
X |
6 |
|
発注日 |
X |
10 |
|
商品名 |
X |
6 |
|
数量 |
PACK |
3 |
桁数=5 |
単価 |
PACK |
3 |
桁数=5 |
データ |
X |
51 |
|
- 帳票仕様
-
ページ行数 |
30 |
ページ幅 |
132 |
ヘッダ行数 |
6 |
フッター行数 |
5 |
論理ページ幅 |
3 |
論理ページの数 |
3 |
論理ページの行数 |
19 |
このページのトップへ戻る
Qプログラム例
*------------------------------------------------*
*パラメータ(WP)
* レイアウト 変数名
* 1-2 : パラメータ長 FILLER
* 3-12 : 発注日 WP3Z10
* 13-19 : 取引先ID WP13Z7
* 21-80 : 予備
*------------------------------------------------*
PRT001 START WP=(W80)
*------------------------------------------------*
*ファイル:発注マスタ
* 項目名 TYPE LEN 変数名
* 取引先 X 6 M1Z6
* 発注日 X 10 M7Z10
* 商品名 X 6 M17Z6
* 数量 P 5 M23P3
* 単価 P 5 M26P3
* データ X 52 M29Z52
*------------------------------------------------*
SYS101 INP R80
*------------------------------------------------*
*帳票(発注明細)
* ページ行数 30
* ページ幅 132
* ヘッダ行数 6
* フッター行数 5
* 論理ページの幅 25
* 論理ページ数 3
* 論理ページの行数 19
*------------------------------------------------*
SYSOT1 PRIJ F30,E9P,BOX(1:19,3:25)
EQU WCAL=(P3)
*-------------------------------------------------------*
*物理ページ ヘッダ行 出力処理
*-------------------------------------------------------*
HPAGEJ SECT
*1行目 無し
LISJ
*2行目
SET KD'発注明細',J30K9
SET KYM,J70E9 ; システム日付
SET KTI,J80E9 ; システム時刻
LISJ
*3行目: 無し
LISJ
*4行目:
SET KD'発注日',J1K9
SET WP3Z10 ,J15E9
LISJ
*5行目:
SET KD'取引先ID',J1K9
SET WP13Z7 ,J15E9
LISJ
*-------------------------------------------------------*
*論理ページ ヘッダ行 出力処理
*-------------------------------------------------------*
PAGEJ SECT
*1行目
SET KD'商品名',J1K9
SET KD'数量' ,J8K9
SET KD'価格' ,J20K9
LISJ
*-------------------------------------------------------*
*マスタ入力−レコード選別
*-------------------------------------------------------*
*発注マスターファイルから 指定した日付/取引先IDのレコードを読み取る
RECORD SECT
* 日付
IF (M7Z10 # WP3Z10) THEN
GO READ
ENDIF
* 日付
IF (M1Z6 # WP13Z7) THEN
GO READ
ENDIF
*-------------------------------------------------------*
*マスタ入力−レコード処理
*-------------------------------------------------------*
SAMPLE SECT
SET M17Z6 , J1E9 ;商品名
SET M23P3 , J8X4E9 ;数量(ゼロサプレス4桁)
CAL WCAL=M23P3*M26P3 ;価格=単価×数量
SET WCAL , J13R7.1E9 ;価格(カンマ編集7桁)
*
END
このページのトップへ戻る
変換されたCOBOLプログラム例
IDENTIFICATION DIVISION.
PROGRAM-ID. PRT001 INITIAL.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
COPY CBLSPCNQ.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
*------------------------------------------------*
*ファイル:発注マスタ
* 項目名 TYPE LEN 変数名
* 取引先 X 6 M1Z6
* 発注日 X 10 M7Z10
* 商品名 X 6 M17Z6
* 数量 P 5 M23P3
* 単価 P 5 M26P3
* データ X 52 M29Z52
*------------------------------------------------*
SELECT INP ASSIGN TO DISK-SYS101.
*------------------------------------------------*
*帳票(発注明細)
* ページ行数 30
* ページ幅 132
* ヘッダ行数 6
* フッター行数 5
* 論理ページの幅 25
* 論理ページ数 3
* 論理ページの行数 19
*------------------------------------------------*
SELECT PRIJ ASSIGN TO PRINTER-SYSOT1.
DATA DIVISION.
FILE SECTION.
FD INP.
01 INP-REC PIC X(80).
01 INP-REC-R1.
03 M1Z6 PIC X(6).
03 M7Z10 PIC X(10).
03 M17Z6 PIC X(6).
03 M23P3 PIC S9(5) COMP-3.
03 M26P3 PIC S9(5) COMP-3.
03 M29Z51 PIC X(52).
FD PRIJ.
01 PRIJ-REC.
03 PRIJ-REC-DATA PIC X(384).
WORKING-STORAGE SECTION.
COPY CONVWRK.
03 INP-REC-ADD PIC X(80).
03 INP-REC-ADD-SAVE PIC X(80).
03 INP-REC-PREV PIC X(80).
01 WK-PGMNAME PIC X(10) VALUE 'PRT001'.
COPY Q_DEFWORK.
COPY Q_DEFMAT ・・・・・・
COPY Q_DEFSYS ・・・・・・
COPY Q_DEFATTR.
COPY Q_DEFPRIJ ・・・・・・
*-----------------------------------------------------------
*ユーザー定義変数
*-----------------------------------------------------------
01 WCAL PIC S9(5) COMP-3 VALUE ZERO.
LINKAGE SECTION.
*------------------------------------------------*
*パラメータ(WP)
* レイアウト 変数名
* 1-2 : パラメータ長 FILLER
* 3-12 : 発注日 WP3Z10
* 13-19 : 取引先ID WP13Z7
* 21-80 : 予備
*------------------------------------------------*
01 WP PIC X(80).
01 WP-R1 REDEFINES WP.
03 FILLER PIC X(2).
03 WP3Z10 PIC X(10).
03 WP13Z7 PIC X(7).
PROCEDURE DIVISION USING WP.
COPY Q_MAIN.
*
VALUE-RTN SECTION.
VALUE-RTN-START.
CONTINUE.
VALUE-RTN-EXT. EXIT.
*
*-------------------------------------------------------*
*マスタ入力−レコード選別
*-------------------------------------------------------*
*発注マスターファイルから 指定した日付/取引先IDのレコードを
*読み取る
RECORD-RTN SECTION.
RECORD-RTN-START.
* 日付
IF (M7Z10 NOT = WP3Z10) THEN
MOVE Q-GO-READ TO Q-GO-XXX
GO TO RECORD-RTN-EXT
END-IF
* 日付
IF (M1Z6 NOT = WP13Z7) THEN
MOVE Q-GO-READ TO Q-GO-XXX
GO TO RECORD-RTN-EXT
END-IF.
RECORD-RTN-EXT. EXIT.
*
中略
*
*-------------------------------------------------------*
*マスタ入力−レコード処理
*-------------------------------------------------------*
SAMPLE-RTN SECTION.
SAMPLE-RTN-START.
*商品名
*
MOVE M17Z6 TO PRIJ-LW(1:6)
中略
*数量(ゼロサプレス4桁)
*
MOVE M23P3 TO ORG-DATA
中略
*価格=単価×数量
COMPUTE WCAL = M23P3 * M26P3
*価格(カンマ編集7桁)
*
MOVE WCAL TO ORG-DATA
中略
*
SAMPLE-RTN-EXT. EXIT.
*
*-------------------------------------------------------*
*物理ページ ヘッダ行 出力処理
*-------------------------------------------------------*
HPAGEJ-RTN SECTION.
HPAGEJ-RTN-START.
*1行目 無し
*
MOVE 'H' TO PRIJ-CHOL
MOVE 0 TO PRIJ-CNTL-1
MOVE SPACE TO PRIJ-CNTL-2
中略
PERFORM PRIJ-HEADSET
*2行目
*
MOVE N'発注明細' TO W-DBCSCONS
中略
PERFORM PRIJ-CHRATR
* システム日付
*
MOVE Q-KYM TO PRIJ-LW(70:8)
MOVE W-E9 TO PRIJ-CTYP
中略
PERFORM PRIJ-CHRATR
* システム時刻
*
MOVE Q-KTI TO PRIJ-LW(80:8)
MOVE W-E9 TO PRIJ-CTYP
中略
PERFORM PRIJ-HEADSET
*3行目: 無し
*
MOVE 'H' TO PRIJ-CHOL
中略
PERFORM PRIJ-HEADSET
*4行目:
*
MOVE N'発注日' TO W-DBCSCONS
中略
HPAGEJ-RTN-EXT. EXIT.
*
*-------------------------------------------------------*
*論理ページ ヘッダ行 出力処理
*-------------------------------------------------------*
PAGEJ-RTN SECTION.
PAGEJ-RTN-START.
*1行目
*
MOVE N'商品名' TO W-DBCSCONS
中略
PERFORM PRIJ-CHRATR
*
MOVE N'数量' TO W-DBCSCONS
中略
PERFORM PRIJ-CHRATR
*
MOVE N'価格' TO W-DBCSCONS
中略
PERFORM PRIJ-CHRATR
*
中略
PERFORM PRIJ-HEADSET.
PAGEJ-RTN-EXT. EXIT.
*
HFOOTJ-RTN SECTION.
HFOOTJ-RTN-START.
中略
HFOOTJ-RTN-EXT. EXIT.
*
中略
*----------------------------------------
*ブレイク処理 1〜9
*----------------------------------------
BREAK1-RTN SECTION.
BREAK1-RTN-START.
中略
BREAK1-RTN-EXT. EXIT.
中略
*
COPY Q_READINP ・・・・・・
COPY Q_PRIJ ・・・・・・
*----------------------------------------
* 初期化処理
*----------------------------------------
INITIALIZE-RTN SECTION.
INITIALIZE-RTN-START.
COPY Q_SETDTM.
OPEN INPUT INP
MOVE LENGTH OF INP-REC TO Q-RLM
OPEN OUTPUT PRIJ.
*
INITIALIZE-RTN-EXT. EXIT.
*----------------------------------------
* 終了処理
*----------------------------------------
FINAL-RTN SECTION.
FINAL-RTN-START.
PERFORM PRIJ-EJECT
CLOSE INP
CLOSE PRIJ
MOVE Q-CDR TO RETURN-CODE
CALL TOLRTC USING RETURN-CODE.
FINAL-RTN-EXT. EXIT.
このページのトップへ戻る