8.4 交易文件的格式

下面是平衡线算法用到的交易文件的记录格式,文件由两部分构成,前面是公共部分,适合于所有的交易类型,包含的内容有交易日志号、交易码和账号。其中交易日志号是按照交易的先后顺序编写的,即第1笔交易的交易日志号为1,第2笔交易为2,其他类推。交易码定义所有有效的交易代码,包括我们列出来的5种。

交易明细则分成了两种格式,第1种适用于开户、账户资料修改和销户交易,它们都是与客户资料有关的。第2种格式适用于存取款交易,牵涉到账户余额的修改。这两种格式都是使用REDEFINES短语指向同一个内存区域的,所以它们占据的是同一块地方,写到文件中时,每种交易类型决定了它的明细记录的格式。

在下面我们给出了每个栏位的说明,相信你不难理解它。也请注意,记录格式描述中的(:BKTRAN:)是伪文本,供程序使用COPY…REPLACING短语时使用。

        000001 ***************************************************************
        000002 *  COPY BOOK : BKTRAN                                    *
        000003 *  BANK TRANSACTION TRANSACTION FILE LAYOUT LN=80           *
        000004 *  MODIFIED DATE :                                      *
        000005 ***************************************************************
        000006 *
        000007  01 :BKTRAN:-RECORD.
        000008    03 :BKTRAN:-COMM.
        000009       05 :BKTRAN:-JNO          PIC 9(04). →    交易日志号
        000010       05 :BKTRAN:-TX-CODE      PIC X(03). →    交易码,合法交易码如下
        000011          88 :BKTRAN:-VALID VALUE 'OPN' 'UPD' 'CLS' 'DEP' 'WIT'.
        000012       05 :BKTRAN:-AC-NO.
        000013          07 :BKTRAN:-BK-NO         PIC 9(03).→     交易行号
        000014          07 :BKTRAN:-BR-NO         PIC 9(03). →    交易支行号
        000015          07 :BKTRAN:-AC-TYPE       PIC 9(01). →    账户类型
        000016          07 :BKTRAN:-SEQ-NO        PIC 9(06). →    账号序号
        000017          07 :BKTRAN:-CHK-DIGIT     PIC 9(01). →    账户校验位
        000018    03 :BKTRAN:-DETAILS            PIC X(50).
        000019    03 :BKTRAN:-OUC REDEFINES :BKTRAN:-DETAILS. →    账户资料交易格式
        000020       05 :BKTRAN:-LNAME            PIC X(10). →      客户姓
        000021       05 :BKTRAN:-FNAME            PIC X(10).→       客户名
        000022       05 :BKTRAN:-ID               PIC X(14). →      身份证号
        000023       05 :BKTRAN:-ADDR             PIC X(15).→       客户地址
        000024       05 FILLER                    PIC X(01).
        000025    03 :BKTRAN:-DW REDEFINES :BKTRAN:-DETAILS.→       存取款交易格式
        000026       05 :BKTRAN:-REFERENCE        PIC X(12). →       交易摘要
        000027       05 :BKTRAN:-HOLD-REF         PIC X(12). →      交易用途
        000028       05 :BKTRAN:-TRAN-DATE        PIC 9(8).→         交易日期
        000029       05 :BKTRAN:-TX-AMT           PIC 9(13)V99.→     交易金额
        000030       05 FILLER                    PIC X(03).
        000031    03 FILLER                       PIC X(09).
        000032 **************************************************************
        000033 *  END OF BANK TRANSACTION FILE LAYOUT                    *
        000034 **************************************************************