画面・帳票サポートシステム XMAP3 プログラミングガイド 帳票編
帳票を使用したユーザ業務例として,家電販売で受注した家電用品の発注商品管理台帳を出力する処理を想定した業務について説明します。帳票を使用した発注台帳出力業務の流れと,発注商品管理台帳の出力例を次の図に示します。
図9-8 発注台帳出力業務の流れ
<説明>
クライアント側で,JP1/Automatic Job Management System 2 - Client Toolkitを使用してバッチジョブを入力します。これを受けて,サーバ側のJP1/Automatic Job Management System 2 - Managerがバッチ業務の実行,および監視をします。その後,XMAP3/NETから,JP1/Network Printing Systemに印刷要求をします。サーバ側のAPは,ファイルからデータを読み込み,発注台帳を印刷します。
図9-9 発注商品管理台帳の出力例
バッチ環境で,ユーザ業務を処理する場合のシステム構成を次に示します。
図9-10 ハードウェア構成例
三つの索引ファイルである「受注ファイル(ORDER)」,「得意先ファイル(CUST)」,「支店ファイル(SHITEN)」を使用して発注台帳を出力します。
発注台帳出力業務の概要を次の図に示します。
図9-11 発注台帳出力業務の処理概要
コーディングの概要を次に示します。なお,このコーディングの全体は,製品中にソースプログラムとして提供しています。
*********************************************************** * 発注商品管理台帳印刷プログラム (SEND)* *********************************************************** IDENTIFICATION DIVISION. PROGRAM-ID. HATCHU. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CUST-FILE ASSIGN TO 'CUST' ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC RECORD KEY IS KOUBAN-C ALTERNATE RECORD KEY IS CHIKU-NO-C WITH DUPLICATES ALTERNATE RECORD KEY IS CUST-NO-C WITH DUPLICATES. SELECT ORDER-FILE ASSIGN TO 'ORDER' ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC RECORD KEY IS DENPYOU-NO ALTERNATE RECORD KEY IS SHITEN-NO WITH DUPLICATES. SELECT SHITEN-FILE ASSIGN TO 'SHITEN' ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC RECORD KEY IS SHITEN-NO-H. DATA DIVISION. FILE SECTION. FD CUST-FILE. COPY CUSTD. FD ORDER-FILE. COPY ORDERD. FD SHITEN-FILE. COPY SHITEND. * WORKING-STORAGE SECTION. 01 BK-TOTALL PIC S9(4) COMP-5. 01 MAIN-END-FLG PIC X(1) VALUE SPACE. 01 PAGE-CNT PIC 9(4) VALUE 1. 01 OUT-LINE PIC 9(2) VALUE ZERO. 01 BK-SHITEN-NO PIC X(2) VALUE SPACE. 01 BK2-SHITEN-NO PIC X(2) VALUE SPACE. 01 ORDER-FLG PIC X(2) VALUE 'NG'. 01 X PIC 9(2). 01 FIRST-GET PIC X(1) VALUE 'Y'. 01 DATE-WORK. 02 DATE-YY PIC X(2). 02 DATE-MM PIC X(2). 02 DATE-DD PIC X(2). * 論理マップ COPY TOTALO. * COMMUNICATION SECTION. * ワークステーションプリンタに対する通信記述項 CD PRINTER FOR OUTPUT WS MAP NAME IS MAP-NAME-P STATUS KEY IS ERR-CODEP SYMBOLIC TERMINAL IS PRTTERM. ******************************************************* ** 業務開始 ** ******************************************************** PROCEDURE DIVISION. 初期設定. PERFORM 初期設定処理. * 各種ファイルのオープン. OPEN INPUT CUST-FILE ORDER-FILE SHITEN-FILE. * * 帳票出力処理 * PERFORM 帳票編集および出力処理. * 各種ファイルのクローズ. CLOSE CUST-FILE ORDER-FILE SHITEN-FILE. ********************************************************* ** 業務の終了 ** ********************************************************* STOP RUN. * ********************************************************* 帳票編集および出力処理 SECTION. ********************************************************* * * 支店番号で受注ファイルを検索する * PERFORM 受注ファイルの検索処理. MOVE SHITEN-NO-H TO BK-SHITEN-NO BK2-SHITEN-NO. * * 帳票編集および出力のメインループ PERFORM UNTIL MAIN-END-FLG = 'E' IF SHITEN-NO-H NOT = BK2-SHITEN-NO AND OUT-LINE NOT = ZERO THEN PERFORM 帳票の出力処理 MOVE SHITEN-NO-H TO BK-SHITEN-NO BK2-SHITEN-NO END-IF PERFORM 帳票出力データの設定 PERFORM 受注ファイルの検索処理 END-PERFORM. * PERFORM 帳票の出力処理. * 帳票編集および出力処理の終了. EXIT. * ********************************************************* 受注ファイルの検索処理 SECTION. ********************************************************* * MOVE 'NG' TO ORDER-FLG. PERFORM UNTIL ORDER-FLG = 'OK' OR MAIN-END-FLG = 'E' * 支店情報の入力 IF SHITEN-NO-H NOT = BK-SHITEN-NO OR BK-SHITEN-NO = SPACE THEN READ SHITEN-FILE NEXT AT END MOVE 'E' TO MAIN-END-FLG NOT AT END MOVE 'Y' TO FIRST-GET END-READ END-IF * * 受注ファイルの入力 IF MAIN-END-FLG NOT = 'E' THEN IF FIRST-GET = 'Y' THEN MOVE SHITEN-NO-H TO SHITEN-NO START ORDER-FILE KEY IS = SHITEN-NO INVALID KEY MOVE SPACE TO BK-SHITEN-NO NOT INVALID KEY MOVE SHITEN-NO-H TO BK-SHITEN-NO END-START MOVE 'N' TO FIRST-GET END-IF IF BK-SHITEN-NO NOT = SPACE THEN READ ORDER-FILE NEXT AT END MOVE SPACE TO BK-SHITEN-NO NOT AT END IF BK-SHITEN-NO = SHITEN-NO THEN MOVE 'OK' TO ORDER-FLG ELSE MOVE SPACE TO BK-SHITEN-NO END-IF END-READ END-IF END-IF END-PERFORM. * 受注ファイルの検索処理終了. EXIT. * ********************************************************* 帳票出力データの設定 SECTION. ********************************************************* * PERFORM VARYING X FROM 1 BY 1 UNTIL X > 40 IF SHOUHIN-NO(X) NOT = SPACE THEN COMPUTE OUT-LINE = OUT-LINE + 1 MOVE SHOUHIN-NAME(X) TO TOTAL-S-NAMEO(OUT-LINE) MOVE SHOUHIN-NO(X) TO TOTAL-S-CODEO(OUT-LINE) EVALUATE NYUUKIN WHEN 1 MOVE N'現 金' TO TOTAL-NYUUKINO(OUT-LINE) WHEN 2 MOVE N'手 形' TO TOTAL-NYUUKINO(OUT-LINE) WHEN 3 MOVE N'銀行振込' TO TOTAL-NYUUKINO(OUT-LINE) END-EVALUATE IF TOKUTAI = 'Y' THEN MOVE N'特 待' TO TOTAL-WARIO(OUT-LINE) ELSE IF CARD-INF = 'Y' THEN MOVE N'カード' TO TOTAL-WARIO(OUT-LINE) ELSE MOVE N'セール' TO TOTAL-WARIO(OUT-LINE) END-IF END-IF MOVE SURYOU(X) TO TOTAL-SURYOUO(OUT-LINE) MOVE TANKA(X) TO TOTAL-TANKAO(OUT-LINE) MOVE SYOUKEI(X) TO TOTAL-SGOUKEIO(OUT-LINE) MOVE CUST-NO TO TOTAL-T-CODEO(OUT-LINE) CUST-NO-C READ CUST-FILE KEY IS CUST-NO-C END-READ MOVE CUST-NAME-C TO TOTAL-T-NAMEO(OUT-LINE) MOVE DENPYOU-NO TO TOTAL-DEN-NOO(OUT-LINE) MOVE SPACE TO TOTAL-DUMMYO(OUT-LINE) IF OUT-LINE >= 34 THEN PERFORM 帳票の出力処理 MOVE ZERO TO OUT-LINE COMPUTE PAGE-CNT = PAGE-CNT + 1 END-IF END-IF END-PERFORM. * 帳票出力データの設定の終了. EXIT. * ********************************************************* 帳票の出力処理 SECTION. ********************************************************* * MOVE PAGE-CNT TO TOTAL-PAGEOO. MOVE SHITEN-NO-H TO TOTAL-H-CODEO. MOVE SHITEN-NAME-H TO TOTAL-H-NAMEO. * SEND PRINTER FROM TOTALO WITH EMI. * DISABLE PRINTER. * PERFORM 初期設定処理. * 帳票の出力処理終了. EXIT. * ********************************************************* 初期設定処理 SECTION. ********************************************************* * * 論理マップの初期値設定およびCD項の設定 MOVE ALL X'1F' TO TOTALO. MOVE TOTALT TO TOTALL. MOVE ZERO TO TOTALZ. MOVE '00000' TO ERR-CODEP. MOVE 'PRT001' TO PRTTERM. MOVE 'TOTAL6B ' TO MAP-NAME-P. * 年月日の取得および論理マップへの設定 ACCEPT DATE-WORK FROM DATE. MOVE DATE-YY TO TOTAL-NENO. MOVE DATE-MM TO TOTAL-TSUKIO. MOVE DATE-DD TO TOTAL-HINICHIO. * 出力行数の初期化 MOVE ZERO TO OUT-LINE. * 初期設定処理終了. EXIT.
All Rights Reserved. Copyright (C) 2001, 2006, Hitachi, Ltd.