COBOL - 奖金报告

时间:2012-07-18 02:31:56

标签: count character cobol

需要我的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.

3 个答案:

答案 0 :(得分:1)

我不打算将它们全部计算并添加它们,但似乎你可能会很长。

此处未明确说明,但您的BONUS-REPORT中的记录可能是REDEFINESHDR-n的{​​{1}},因此最长的计数这些是记录大小(假设固定长度记录)。

DETAIL-LINE计为10.不应该对齐,因为默认情况下一切都是BONUS-OUTUSAGE 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编程指南中。