画面・帳票サポートシステム XMAP3 プログラミングガイド 帳票編

[目次][用語][索引][前へ][次へ]

9.3.7 日立運用管理システムJP1を使用した例

(a) 概要

帳票を使用したユーザ業務例として,家電販売で受注した家電用品の発注商品管理台帳を出力する処理を想定した業務について説明します。帳票を使用した発注台帳出力業務の流れと,発注商品管理台帳の出力例を次の図に示します。

図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 発注商品管理台帳の出力例

[図データ]

(b) システムの構成

バッチ環境で,ユーザ業務を処理する場合のシステム構成を次に示します。

(c) 処理の概要

三つの索引ファイルである「受注ファイル(ORDER)」,「得意先ファイル(CUST)」,「支店ファイル(SHITEN)」を使用して発注台帳を出力します。

発注台帳出力業務の概要を次の図に示します。

図9-11 発注台帳出力業務の処理概要

[図データ]

(d) コーディング例

コーディングの概要を次に示します。なお,このコーディングの全体は,製品中にソースプログラムとして提供しています。

 
 ***********************************************************
 * 発注商品管理台帳印刷プログラム      (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.