- 论坛徽章:
- 0
|
PL/I 与COBOL的转换
PL/I: HCTACCTP
- /* ------------------------------------------------------------ */
/* */
/* FILE NAME : TRANSACTION ACCOUNTING DATA FILE */
/* DD NAME : HCTACCT */
/* ACCESS METHOD : QSAM */
/* RECORD LENGTH : 38 */
/* BLOCK SIZE : 23180 */
/* */
/* ------------------------------------------------------------ */
DCL HCTACCTC CHAR(3;
DCL 1 HCTACCT BASED(ADDR(HCTACCTC)),
2 HCTBKNO FIXED DEC(3), /* BANK NUMBER */
2 HCTBHNO FIXED DEC(3), /* BRANCH NUMBER */
2 HCTCUR CHAR(3), /* CURRENCY CODE */
2 HCTCODE CHAR(5), /* TRANSACTION CODE */
2 HCTJNL FIXED DEC(11), /* JOURNAL NUMBER */
2 HCTTERM FIXED DEC(5), /* TERMINAL NUMBER */
2 HCTTEL FIXED DEC(5), /* TELLER ID */
2 HCTITEM PIC'999999', /* ITEM NUMBER */
2 HCTAMT FIXED DEC(15,2);/* ENTRY AMOUNT */
DCL HCTCPBH FIXED DEC(11) BASED(ADDR(HCTITEM));
COBOL: HCTACCTC
000060*---------------------------------------------------------------*
000200* *
000300* MEMBER NAME : HCTACCT *
000400* RELATED PROGRAM(S) : *
000500* DESCRIPTION : TRANSACTION ACCOUNTING DATA FILE *
000600* ACCESS METHOD : QSAM *
000700* LENGTH : 38 *
000701* BLOCK SIZE : 23180 *
000804*---------------------------------------------------------------*
003700 01 HCTACCT-RECORD.
003800 05 HCTBKNO PIC S9(3) PACKED-DECIMAL.
003900 05 HCTBHNO PIC S9(3) PACKED-DECIMAL.
004000 05 HCTCUR PIC X(3).
004100 05 HCTCODE PIC X(5).
004200 05 HCTJNL PIC S9(11) PACKED-DECIMAL.
004300 05 HCTTERM PIC S9(5) PACKED-DECIMAL.
004400 05 HCTTEL PIC S9(5) PACKED-DECIMAL.
004500 05 HCTITEM PIC 9(6).
004510 05 HCTCPBH REDEFINES HCTITEM
004520 PIC S9(11) PACKED-DECIMAL.
004600 05 HCTAMT PIC S9(13)V99 PACKED-DECIMAL.
此样例中有redefine案例,可以借鉴学习。COBOL和pl/i的copy book互转时,一定
需要注意它们的之间的结构一定要保持一致。字段名称可以按照各自的规则进行命
名。不过最好保持相同的字段名。
pl/i的程序结构 (0)
PROGNAME <img src='/forummodule/images/smilies/tongue.gif' />ROC(pcb/parm)OPTIONS(MAIN);
/********************************************************************/
/* PROGRAM FUNCTIONS: */
/* */
/* ......(functional descrition) */
/* */
/* WRITEN BY : */
/* DATE : */
/* FOR XXX APL. SYSTEM */
-/* --------------------*/
/* */
/* --------------------*/
/* MODIFICATION HISTORY: */
/* NO. MODIFICATOR TSO_ID FLAG REPORT_NO. */
-/*--------------------- */
/*---------------------*/
/* EXTERNAL SUBROUTINES */
/*-----------------------*/
DCL juldate ENTRY;
DCL BKFINME ENTRY OPTIONS(ASM INTER);
........
/*---------------------*/
/* BUILTIN FUNCTIONS */
-/*---------------------*/
DCL add BUILTIN;
DCL (PLIRETC,PLIDUMP) BUILTIN;
DCL (ROUND,MULTIPLY,DIVIDE,ADD) BUILTIN;
DCL (ADDR,HIGH,LOW) BUILTIN;
......
/*----------------------*/
/* %INCLUDE STATEMENT */
/*----------------------*/
%UNTTLUDE MACLIB(payroll);
.......
/*----------------------*/
/* LAYOUT OF PCB,SSA,IMS FUNCTION */
/*---------------------- */
DCL 1 pcb_in,
2 ......
......
......
/*----------------------*/
/* INPUT FILE RECORD FORMAT */
/*----------------------*/
DCL 1 in_rec,
2......
......
.......
/*-----------------------*/
/* WORK AREA */
/*-----------------------*/
DCL 1 eof BIT(1) INIT(‘O’B);
......
DCL W FIXED BIN(15) INIT(REMQTY);
/*-----------------------*/
/* DD NAME */
/*----------------------*/
DCL infile INPUT RECORD FILE;
DCL TTDLFUN UPDATE RECORD FILE;
DCL TTRSKWG INPUT RECORD FILE;
DCL TTRESUL RECORD FILE;
DCL TTRPT01 OUTPUT RECORD FILE;
......
/*----------------------*/
/* ON STATEMENT */
/*-----------------------*/
ON ENDFILE(infile)eof=‘1’B;
......
/*-----------------------*/
/* MAIN PROGRAM */
/* ......(functional description) */
/*------------------------*/
OPEN FILE(TTRESUL) UPDATE;
REWRITE FILE (TTRESUL) FROM (TTPL);
......
.
.
.
/*------------------------*/
/* SUBROUTINE XXX */
/* ......(functiona description */
/*-----*/
......(statements)
END PROGNAME; |
|