Last active
August 29, 2015 14:03
-
-
Save akisute/3d1a7bbc2cc3eb290910 to your computer and use it in GitHub Desktop.
昔見かけた伝統芸能、プログラムコードは http://people.sju.edu/~jhodgson/cobol/sample.html からお借りしました
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* *************************************************************** | |
* プログラムID SSCD01 | |
* 機能名 S社詳細帳票出力01 | |
* 開発担当者 株式会社akisute | |
* あきすてさま | |
* 初版 2004/06/28 | |
* | |
* 変更履歴 | |
* 2004/06/28 変更者 あきすてさま | |
* 初版作成。 | |
* | |
* 2004/07/02 変更者 あきすてさま | |
* テーブル形式 XXXXマスタのカラム長を4byteから8byteに変更。 | |
* コメントの変更。 | |
* | |
* 2004/07/04 変更者 あきすてさま | |
* コメントの変更。 | |
* | |
* 2014/06/28 変更者 akisute | |
* 当時の開発規約ないし命名規約を追記。 | |
* コメントの変更。 | |
* | |
* 以下これが3〜4年分程度、だいたいエディタ3〜4画面程度続く。 | |
* | |
* *************************************************************** | |
000010 IDENTIFICATION DIVISION. | |
000020 PROGRAM-ID. SSCD01. | |
000030 | |
000040 DATE-WRITTEN. 4 February 2004 | |
000050 ENVIRONMENT DIVISION. | |
000060 INPUT-OUTPUT SECTION. | |
000070 FILE-CONTROL. | |
000080 SELECT CHSS01-FILE ASSIGN TO SYSIN | |
000090 ORGANIZATION IS LINE SEQUENTIAL. | |
000100 SELECT PRINT-FILE ASSIGN TO SYSOUT | |
000110 ORGANIZATION IS LINE SEQUENTIAL. | |
000120 | |
000130 DATA DIVISION. | |
000140 FILE SECTION. | |
000150 FD CHSS01-FILE | |
000160 RECORD CONTAINS 43 CHARACTERS | |
000170 DATA RECORD IS CHSS01-IN. | |
000180 01 CHSS01-IN PIC X(43). | |
000190 | |
000200 FD PRINT-FILE | |
000210 RECORD CONTAINS 80 CHARACTERS | |
000220 DATA RECORD IS PRINT-LINE. | |
000230 01 PRINT-LINE PIC X(80). | |
000240 | |
000241 SQL SECTION. | |
000242* 確か独自拡張でSQLの記述が可能だったような気がします。 | |
000243* SQL SECTIONみたいなのがDATA DIVISIONにあって、 | |
000244* そこにテーブル定義のSQLが生で書いてあったような。 | |
000245* 詳細はぜんぜん覚えてません>< | |
000249 | |
000250 WORKING-STORAGE SECTION. | |
000251* これ拾ってきたコードなのでそれっぽい変数名になっているのですが、 | |
000252* 実際のコードはすべての変数名は6文字ピッタリでした。SSCTMPとかSSCIN1とか。 | |
000253* 先頭3文字が部署・モジュール名・用途(帳票出力・バッチ・画面など)を表し、 | |
000254* 後ろの3文字が自由に使っていいルールだった気がします。 | |
000260 01 DATA-REMAINS-SWITCH PIC X(2) VALUE SPACES. | |
000261 01 RECORDS-WRITTEN PIC 99. | |
000270 | |
000280 01 DETAIL-LINE. | |
000290 05 FILLER PIC X(7) VALUE SPACES. | |
000300 05 RECORD-IMAGE PIC X(43). | |
000310 05 FILLER PIC X(30) VALUE SPACES. | |
000311 | |
000312 01 SUMMARY-LINE. | |
000313 05 FILLER PIC X(7) VALUE SPACES. | |
000314 05 TOTAL-READ PIC 99. | |
000315 05 FILLER PIC X VALUE SPACE. | |
000316 05 FILLER PIC X(17) | |
000317 VALUE 'Records were read'. | |
000318 05 FILLER PIC X(53) VALUE SPACES. | |
000319 | |
000320 PROCEDURE DIVISION. | |
000321 | |
000330 PREPARE-SENIOR-REPORT. | |
000340 OPEN INPUT CHSS01-FILE | |
000350 OUTPUT PRINT-FILE. | |
000351 MOVE ZERO TO RECORDS-WRITTEN. | |
000360 READ CHSS01-FILE | |
000370 AT END MOVE 'NO' TO DATA-REMAINS-SWITCH | |
000380 END-READ. | |
000390 PERFORM PROCESS-RECORDS | |
000410 UNTIL DATA-REMAINS-SWITCH = 'NO'. | |
000411 PERFORM PRINT-SUMMARY. | |
000420 CLOSE CHSS01-FILE | |
000430 PRINT-FILE. | |
000440 STOP RUN. | |
000450 | |
000460 PROCESS-RECORDS. | |
000470 MOVE CHSS01-IN TO RECORD-IMAGE. | |
000480 MOVE DETAIL-LINE TO PRINT-LINE. | |
000490 WRITE PRINT-LINE. | |
000500 ADD 1 TO RECORDS-WRITTEN. | |
000510 READ CHSS01-FILE | |
000520 AT END MOVE 'NO' TO DATA-REMAINS-SWITCH | |
000530 END-READ. | |
000540 | |
000550 PRINT-SUMMARY. | |
000560 MOVE RECORDS-WRITTEN TO TOTAL-READ. | |
000570 MOVE SUMMARY-LINE TO PRINT-LINE. | |
000571 WRITE PRINT-LINE. | |
000572 | |
000580 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment