0

我的 COBOL 作业需要您的帮助。

数据划分文件部分的详细信息如下。我的问题是我不知道如何计算字符的数量 - 记录包含_字符。你能检查并告诉我我的计数是否正确。如果不是正确的数字是多少,你是如何得到它的。

      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.
4

3 回答 3

1

我不会把它们都数一遍然后加起来,但看起来你可能很长。

这里没有明确说明,但看​​起来您的记录BONUS-REPORT可能是REDEFINESand HDR-nDETAIL-LINE因此其中最长的计数是记录大小(假设记录长度固定)。

BONUS-OUT为 10。不应该对齐,因为一切都是USAGE IS DISPLAY默认的。这些VALUE条款在计数方面没有区别。

于 2012-07-18T03:16:23.330 回答
0

您的问题的答案是向编译器询问答案。

也就是说,按原样编译程序并检查编译器列表,它应该告诉您每个字段和记录的长度。然后您可以返回源代码并根据需要进行更新。

根据您使用的环境(大型机、unix、windows 等),可能需要设置某些编译器选项来告诉编译器创建那种编译器列表。对于我在大型机上使用带有 4.2 版编译器的 z/OS,这些选项都记录在 Enterprise COBOL for z/OS Programming Guide 中,网址为http://pic.dhe.ibm.com/infocenter/pdthelp/v1r1 /topic/com.ibm.entcobol.doc_4.2/PGandLR/ref/rpcos390.htm

于 2012-07-18T19:24:23.863 回答
0

严格来说,奖金记录是 222 字节,因为您所说的是:--

  01  BONUS-REPORT-RECORD          PIC X(222).

您可能要问的是各种标题和详细信息条目的长度是多少。

通常这些都将作为单独的记录写入——因此最长的记录将是 81 字节的 HDR-1。其他的都更短。

于 2012-07-18T08:48:10.417 回答