需要我的COBOL分配帮助。
数据分区文件部分详细信息如下。我的问题是我不知道如何计算数字如果字符 - RECORD CONTAINS _ CHARACTERS。你能检查并告诉我我的计数是否合适。如果不是正确的数字是什么,你是如何到达它的。
FD BONUS-REPORT
RECORD CONTAINS 222 CHARACTERS.
01 BONUS-REPORT-RECORD PIC X(222).
WORKING-STORAGE SECTION.
01 LINE-CT PIC 99 VALUE 0.
01 WS-CONSTANTS.
05 TOTAL-LINES PIC 99 VALUE 10.
01 ARE-THERE-MORE-RECORDS PIC X(3) VALUE 'YES'.
88 MORE-RECORDS VALUE 'YES'.
88 NO-MORE-RECORDS VALUE 'NO'.
01 WS-DATE.
05 WS-YEAR PIC 9(4).
05 WS-MONTH PIC 99.
05 WS-DAY PIC 99.
01 HDR-1.
05 PIC X(40).
05 PIC X(12)
VALUE 'BONUS REPORT'.
05 PIC X(8).
05 PIC X(5) VALUE 'PAGE'.
05 PAGE-NO PIC 99 VALUE 0.
05 PIC X(4).
05 DATE-OUT.
10 MONTH-OUT PIC 99.
10 PIC X VALUE '/'.
10 DAY-OUT PIC 99.
10 PIC X VALUE '/'.
10 YEAR-OUT PIC 9(4).
01 HDR-2.
05 PIC X(10).
05 PIC X(13)
VALUE 'TERRITORY --'.
05 TERRITORY-NO-OUT PIC X(2).
01 HDR-5.
05 PIC X(20).
05 PIC X(10)
VALUE 'OFFICE -- '.
05 OFFICE-NO-OUT PIC X(2).
01 HDR-7.
05 PIC X(10).
05 PIC X(14)
VALUE 'EMPLOYEE NAME'.
05 PIC X(8).
05 PIC X(5)
VALUE 'BONUS'.
01 DETAIL-LINE.
05 PIC X(7).
05 EMPLOYEE-NAME-OUT PIC X(24).
05 BONUS-OUT PIC $BZ,ZZZ.99 BLANK WHEN ZERO.
答案 0 :(得分:1)
我不打算将它们全部计算并添加它们,但似乎你可能会很长。
此处未明确说明,但您的BONUS-REPORT
中的记录可能是REDEFINES
和HDR-n
的{{1}},因此最长的计数这些是记录大小(假设固定长度记录)。
将DETAIL-LINE
计为10.不应该对齐,因为默认情况下一切都是BONUS-OUT
。 USAGE IS DISPLAY
条款对计数没有影响。
答案 1 :(得分:0)
严格来说,奖励记录是222个字节,因为你说的是: -
01 BONUS-REPORT-RECORD PIC X(222).
您可能会问的是各种标题和详细信息条目的长度是多少。
通常这些都将被写为单独的记录 - 因此最长的记录将是81字节的HDR-1。所有其他人都更短。
答案 2 :(得分:0)
您的问题的答案是询问编译器答案。
也就是说,按原样编译程序并检查编译器列表,它应该告诉你每个字段和记录有多长。然后,您可以返回源代码并根据需要进行更新。
根据您使用的环境(大型机,unix,windows等),可能需要设置某些编译器选项,以告诉编译器创建那种编译器列表。对于我在大型机上使用z / OS和4.2版本的编译器,所有选项都记录在http://pic.dhe.ibm.com/infocenter/pdthelp/v1r1/topic/com.ibm.entcobol.doc_4.2/PGandLR/ref/rpcos390.htm的企业COBOL for z / OS编程指南中。