127 lines
6.3 KiB
COBOL
127 lines
6.3 KiB
COBOL
IDENTIFICATION DIVISION.
|
||
PROGRAM-ID. JIN07SUB.
|
||
*****************************************************************
|
||
* システム名 : 人事情報管理システム *
|
||
* プログラムID : JIN07SUB *
|
||
* プログラム名 : 社員情報取得サブ *
|
||
* 作成日 : 2026-08-02 *
|
||
* 処理概要 : 指定 EMP-ID に一致する EMP-VALID レコードの *
|
||
* 項目を返却するサブプログラム *
|
||
* 終了は EXIT PROGRAM(GOBACK 不使用) *
|
||
*****************************************************************
|
||
* 更新履歴 *
|
||
*---------------------------------------------------------------*
|
||
* 更新日付 担当者 更新内容 *
|
||
*---------------------------------------------------------------*
|
||
* 26-08-02 @@@ 新規作成 *
|
||
* *
|
||
*****************************************************************
|
||
ENVIRONMENT DIVISION.
|
||
CONFIGURATION SECTION.
|
||
SOURCE-COMPUTER. IBM-ZSERIES.
|
||
OBJECT-COMPUTER. IBM-ZSERIES.
|
||
*
|
||
INPUT-OUTPUT SECTION.
|
||
FILE-CONTROL.
|
||
SELECT R01INNFIL ASSIGN TO EXTERNAL JIN07R01
|
||
ORGANIZATION IS SEQUENTIAL
|
||
ACCESS MODE IS SEQUENTIAL.
|
||
*
|
||
DATA DIVISION.
|
||
*****************************************************************
|
||
FILE SECTION.
|
||
*****************************************************************
|
||
* R01: EMP-VALID(200B 社員データ) *
|
||
*****************************************************************
|
||
FD R01INNFIL
|
||
LABEL RECORD IS STANDARD
|
||
BLOCK CONTAINS 0
|
||
RECORDING MODE IS F.
|
||
01 R01INNREC.
|
||
COPY JIN01REC REPLACING ==(A)== BY ==R01==.
|
||
*
|
||
*****************************************************************
|
||
WORKING-STORAGE SECTION.
|
||
*****************************************************************
|
||
01 WRKARA.
|
||
*** 読込フラグ
|
||
03 WRK-R01EOF PIC X(001).
|
||
88 WRK-R01EOF-Y VALUE '1'.
|
||
*** ADDRESS OF 取得用ポインタ
|
||
03 WS-PTR USAGE POINTER.
|
||
*
|
||
*****************************************************************
|
||
* リンケージエリア(個別引数方式) *
|
||
*****************************************************************
|
||
LINKAGE SECTION.
|
||
*****************************************************************
|
||
01 LK-EMP-ID PIC X(008).
|
||
01 LK-KANA-SEI PIC X(020).
|
||
01 LK-KANA-MEI PIC X(020).
|
||
01 LK-KANJI-NAME PIC N(040).
|
||
01 LK-SUB-CODE PIC X(004).
|
||
01 LK-BIRTH-DATE PIC X(008).
|
||
01 LK-EMP-ID-OUT PIC X(008).
|
||
01 LK-FILLER PIC X(060).
|
||
01 LK-RESULT PIC X(002).
|
||
*
|
||
PROCEDURE DIVISION
|
||
USING LK-EMP-ID, LK-KANA-SEI, LK-KANA-MEI, LK-KANJI-NAME,
|
||
LK-SUB-CODE, LK-BIRTH-DATE, LK-EMP-ID-OUT, LK-FILLER,
|
||
LK-RESULT.
|
||
*****************************************************************
|
||
* サブモジュールNO: (0.0) *
|
||
* サブモジュール名: 制御処理 *
|
||
* 処理概要 : メインコントロール処理 *
|
||
*****************************************************************
|
||
0000MAINSOR SECTION.
|
||
*
|
||
*** ADDRESS OF 予約語カバー(引数アドレス取得)
|
||
MOVE ADDRESS OF LK-EMP-ID TO WS-PTR.
|
||
*
|
||
*** 検索結果初期化(不一致初期値)
|
||
MOVE 'NG' TO LK-RESULT.
|
||
*
|
||
*** 入力ファイルOPEN
|
||
OPEN INPUT R01INNFIL.
|
||
*
|
||
*** 社員検索
|
||
PERFORM 1000FNDSOR.
|
||
*
|
||
*** 入力ファイルCLOSE
|
||
CLOSE R01INNFIL.
|
||
*
|
||
0000MAINSOR-EXT.
|
||
EXIT PROGRAM.
|
||
*
|
||
*EJECT
|
||
*****************************************************************
|
||
* サブモジュールNO: (1.0) *
|
||
* サブモジュール名: 社員検索 *
|
||
* 処理概要 : EMP-VALID 順次検索で一致レコード返却 *
|
||
*****************************************************************
|
||
1000FNDSOR SECTION.
|
||
*
|
||
PERFORM UNTIL LK-RESULT = 'OK' OR WRK-R01EOF-Y
|
||
READ R01INNFIL
|
||
AT END
|
||
MOVE '1' TO WRK-R01EOF
|
||
NOT AT END
|
||
IF R01EMP-ID = LK-EMP-ID
|
||
MOVE R01KANA-SEI TO LK-KANA-SEI
|
||
MOVE R01KANA-MEI TO LK-KANA-MEI
|
||
IF LK-KANJI-NAME NOT OMITTED
|
||
MOVE R01KANJI-NAME TO LK-KANJI-NAME
|
||
END-IF
|
||
MOVE R01SUB-CODE TO LK-SUB-CODE
|
||
MOVE R01BIRTH-DATE TO LK-BIRTH-DATE
|
||
MOVE R01EMP-ID TO LK-EMP-ID-OUT
|
||
MOVE R01FILLER TO LK-FILLER
|
||
MOVE 'OK' TO LK-RESULT
|
||
END-IF
|
||
END-READ
|
||
END-PERFORM.
|
||
*
|
||
1000FNDSOR-EXT.
|
||
EXIT.
|