Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables COBOL:打印包含变量的行_Variables_Process_Cobol_Heading - Fatal编程技术网

Variables COBOL:打印包含变量的行

Variables COBOL:打印包含变量的行,variables,process,cobol,heading,Variables,Process,Cobol,Heading,销售额达到10000的员工人数:ZZ9 销售中10001至20000的员工人数:ZZ9 这就是我想要实现的,ZZ9是变量。我不太清楚该怎么做,我的书被偷了,所以我希望能得到一些帮助。在我的工作存储区,我有 01 HEADING-LINE-3. 05 PIC X(03) VALUE SPACES. 05 PIC X(48) VALUE

销售额达到10000的员工人数:ZZ9

销售中10001至20000的员工人数:ZZ9

这就是我想要实现的,ZZ9是变量。我不太清楚该怎么做,我的书被偷了,所以我希望能得到一些帮助。在我的工作存储区,我有

 01  HEADING-LINE-3.
            05                      PIC X(03) VALUE SPACES.
            05                      PIC X(48) VALUE
                  "Number of employees with up to 10,000 in sales: "
 01  HEADING-LINE-4
            05                      PIC X(03) VALUE SPACES.
            05                      PIC X(52) VALUE
                  "Number of employees from 10,001 to 20,000 in sales: " 
 4000-PROCESS.
              WRITE REPORT-RECORD         FROM REPORT-BLANK-LINE.
              WRITE REPORT-RECORD         FROM COLUMN-HEADING-2.
              WRITE REPORT-RECORD         FROM HEADING-LINE-3.
              WRITE REPORT-RECORD         FROM HEADING-LINE-4.
在我的程序部门我有

 01  HEADING-LINE-3.
            05                      PIC X(03) VALUE SPACES.
            05                      PIC X(48) VALUE
                  "Number of employees with up to 10,000 in sales: "
 01  HEADING-LINE-4
            05                      PIC X(03) VALUE SPACES.
            05                      PIC X(52) VALUE
                  "Number of employees from 10,001 to 20,000 in sales: " 
 4000-PROCESS.
              WRITE REPORT-RECORD         FROM REPORT-BLANK-LINE.
              WRITE REPORT-RECORD         FROM COLUMN-HEADING-2.
              WRITE REPORT-RECORD         FROM HEADING-LINE-3.
              WRITE REPORT-RECORD         FROM HEADING-LINE-4.

但是我不知道如何在这些语句的末尾添加变量。非常感谢您的任何帮助。我三天前就开始使用cobol了,所以如果你能尽可能让所有的事情都哑巴,那就太好了

只需在数据声明末尾添加数字字段即可:

    01  HEADING-LINE-3.
        05                      PIC X(03) VALUE SPACES.
        05                      PIC X(48) VALUE
              "Number of employees with up to 10,000 in sales: "
        05 Number-employee-to-10000  pic zzz,zz9
    01  HEADING-LINE-4
        05                      PIC X(03) VALUE SPACES.
        05                      PIC X(52) VALUE
              "Number of employees from 10,001 to 20,000 in sales: " 
        05 Number-employee-above-10000  pic zzz,zz9.
您的记录在两个comp字段中是否显示

   01  ws-accumulators
       03 employee-accum-1      pic s9(9) comp. 
       03 employee-accum-2      pic s9(9) comp. 
由于数字编辑字段(pic zz9)实际上是 文本字段不是数字字段(而且许多编译器无论如何都不允许您这样做)。复合字段 应该更快

然后在“程序”部分中,将总计移至上面的新字段

   4000-PROCESS.
          Move  employee-accum-1        to Number-employee-to-10000 
          Move  employee-accum-2        to Number-employee-above-10000

          WRITE REPORT-RECORD         FROM REPORT-BLANK-LINE.
          WRITE REPORT-RECORD         FROM COLUMN-HEADING-2.
          WRITE REPORT-RECORD         FROM HEADING-LINE-3.
          WRITE REPORT-RECORD         FROM HEADING-LINE-4.

ZZ9是一个图片,粗略地说,它是一个变量的属性。因此,您可以对05 HEADING-LINE-3-COUNT PIC ZZ9进行编码。并且您可以根据比较逻辑在您的过程划分中增加HEADING-LINE-3-COUNT。简短的回答,因为你是从第一步开始的:再买一本你的课本。你需要把数字从雇员改为10000,再换一本吗?或者,您可以简单地将employee-acum-1放在标题行的空白处,取决于您使用的Cobol版本。追溯到10年前,一个经过编辑的数字(例如ZZ9)实际上是字符/字符串字段,您需要这两个变量。我认为最新的标准允许反编辑,因此一些编译器将允许您向zz9字段添加1。但要将1添加到字段中,计算机需要将字段从字符表示形式转换为二进制整数,将1添加到字段中,然后将其转换回字符串。@user38254 PIC定义了字段的存储方式。只要该字段是动词的目标,就会发生任何必要的转换。将任何类型的计算字段放在打印行上都不会给您带来太多可见的结果(有时您会看到一些东西,但您无法确定它的含义)。直接添加到数字编辑字段将是非常非常不标准的。布鲁斯已经指出了需要的机器,所以希望一旦你知道了一些,你甚至不会考虑它,即使你找到一个编译器允许它。