トップ 差分 一覧 ソース 置換 検索 ヘルプ 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
     A* 得意先マスター一覧表
     A*** LINE = 02
     A          R PHEAD1
     A                                      SKIPB(02)
     A*
     A                                     1'ENS010'
     A                                    11'SAMPLE PRINTF'
     A                                    38' * *  得意先マスタ一覧表+ 1+2+
     A                                            * * '
     A                                      CHRSIZ(1 2)
     A*
     A                                    88'作成日'
     A            H#DATE         6S 0     97TEXT('日付')
     A                                      EDTWRD('0  /  /  ')
     A            H#TIME         6S 0    109TEXT('時刻')
     A                                      EDTWRD('0  :  :  ')
     A                                   120'ページ '
     A            H#PAGE         4S 0    126TEXT('PAGE')
     A                                      EDTWRD(' , 0 ')
     A*** LINE = 04
     A                                      SKIPB(04)
     A*
     A                                     1'得番'
     A                                    10'得意先名称'
     A                                    31'住所1'
     A                                    53'住所2'
     A                                    75'地区'
     A                                    83'郵便'
     A                                    94'売掛金残高'
     A                                   109'信用限度額'
     A*** LINE = 06 〜(明細行)
     A          R PDTL01
     A                                      SPACEB(2)
     A*
     A            D#BANG         5A        2TEXT('得意先番号')
     A            D#NAKJ        20O       10TEXT('得意先漢字')
     A            D#ADR1        20O       32TEXT('住所1')
     A            D#ADR2        20O       54TEXT('住所2')
     A            D#TIKU         2A       77TEXT('地区コード')
     A            D#POST         6A       83TEXT('郵便番号')
     A            D#UZAN         9S 0     94TEXT('売掛金残高')
     A                                      EDTWRD('   ,   , 0 -')
     A            D#GEND         9S 0    109TEXT('信用限度額')
     A                                      EDTCDE(N)
     A*
     A  80                               124'※'
     A**** 売掛残合計行
     A          R PTTL
     A                                      SPACEB(2)
     A*
     A                                    60' * * 売掛残合計 * *'
     A            T#UZAN        11S 0     91TEXT('数量')
     A                                      EDTWRD('  ,   ,   , 0 -')
     A** ゼロ件時
     A***** 06 行目
     A          R PZERO
     A                                      SKIPB(06)
     A*
     A                                    30' * * * 対象データがありません。+
     A                                          * * * ' 

上記ソースを作成し、

CRTPRTF

でコンパイル。

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

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
     H            Y
     F********************************************************
     F*   FILE情報
     F********************************************************
     F*
     FTKMASP  IF  E           K        DISK
     FENS010PRO   E             11     PRINTER
     I********************************************************
     I*   ワークフィールドの定義
     I********************************************************
     I*
     I            DS
     I                                        1   80W@YMD8
     I                                        1   40W@YYYY
     I                                        5   60W@MM
     I                                        7   80W@DD
     C********************************************************
     C** 1.0初期処理
     C                     EXSR @INIT
     C** 2.0メイン処理
     C                     EXSR @MAIN
     C** 3.0 終了処理
     C                     EXSR @END
     C********************************************************
     C*    1.0   @INIT  (初期処理)
     C********************************************************
     C           @INIT     BEGSR
     C                     Z-ADD*ZERO     W@YMD8
     C                     Z-ADD*ZERO     H#PAGE
     C                     Z-ADD*ZERO     T#UZAN
     C*
     C                     SETOF                     11
     C                     SETOF                     80
     C                     SETOF                     90
     C                     EXSR @PHEAD
     C                     ENDSR
     C*
     C*********************************************************
     C*    2.0   @MAIN   (メイン処理)
     C*********************************************************
     C           @MAIN     BEGSR
     C           *IN90     DOWEQ*OFF
     C                     READ TKMASR                   90
     C*
     C           *IN90     IFEQ *OFF
     C           *IN11     IFEQ *ON
     C                     EXSR @PHEAD
     C                     MOVEL*OFF      *IN11
     C                     ENDIF
     C*
     C                     EXSR @PDTL
     C                     SETON                       81
     C*
     C                     ENDIF
     C*
     C                     ENDDO
     C*
     C*
     C*
     C           *IN81     IFEQ *ON
     C                     WRITEPTTL
     C                     ELSE
     C                     WRITEPZERO
     C                     ENDIF
     C*
     C                     ENDSR
     C********************************************************
     C*      2.1   @PHEAD (ヘッダー出力)
     C********************************************************
     C           @PHEAD    BEGSR
     C                     Z-ADD*DATE     H#DATE
     C                     TIME           H#TIME
     C                     ADD  1         H#PAGE
     C*
     C                     WRITEPHEAD1
     C*
     C                     ENDSR
     C********************************************************
     C*      2.2   @PDTL  (明細出力)
     C********************************************************
     C           @PDTL     BEGSR
     C                     MOVELTKBANG    D#BANG
     C                     MOVELTKNAKJ    D#NAKJ
     C                     MOVELTKADR1    D#ADR1
     C                     MOVELTKADR2    D#ADR2
     C                     MOVELTKTIKU    D#TIKU
     C                     MOVELTKPOST    D#POST
     C                     MOVELTKUZAN    D#UZAN
     C                     MOVELTKGEND    D#GEND
     C                     MOVEL*OFF      *IN80
     C           TKUZAN    IFGE TKGEND
     C                     MOVEL*ON       *IN80
     C                     ENDIF
     C*
     C                     ADD  TKUZAN    T#UZAN
     C*
     C                     WRITEPDTL01
     C*
     C                     ENDSR
     C********************************************************
     C*            @END    (終了処理)
     C********************************************************
     C           @END      BEGSR
     C                     SETON                     LR
     C                     RETRN
     C*
     C*
     C*
     C*
     C                     ENDSR 

上記ソースを作成し、

CRTRPGPGM

でコンパイル。


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

[通知用URL]



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

最終更新時間:2009年01月30日 19時34分26秒