记录行/输出行中的第一个计算记录在COBOL输出中变为空白
我的计算是正确的。但是输出文件的仅第一个计算的记录变为空白,并影响所有记录 在输出文件[A5-SalaryReport-5A.out]中,您可能会看到第一条记录的位置为空 这是我的输入文件[A5.dat] 这是我的COBOL项目文件.cbl[A5-SalaryReport-5A.cbl] 我知道这不是一件需要弄清楚的事情,我很感激你提供的任何答案记录行/输出行中的第一个计算记录在COBOL输出中变为空白,cobol,cobol85,cobol.net,netcobol,procobol,Cobol,Cobol85,Cobol.net,Netcobol,Procobol,我的计算是正确的。但是输出文件的仅第一个计算的记录变为空白,并影响所有记录 在输出文件[A5-SalaryReport-5A.out]中,您可能会看到第一条记录的位置为空 这是我的输入文件[A5.dat] 这是我的COBOL项目文件.cbl[A5-SalaryReport-5A.cbl] 我知道这不是一件需要弄清楚的事情,我很感激你提供的任何答案 干杯 我看到的问题是ws-position的正确值显示在下一条记录上;这是因为打印行后确定了ws-calc位置。这导致第一条记录上出现空白,并且以下打
干杯 我看到的问题是
ws-position
的正确值显示在下一条记录上;这是因为打印行后确定了ws-calc位置。这导致第一条记录上出现空白,并且以下打印行的值不正确
我建议将用于确定ws-calc位置的代码移动到需要之前<代码>120个流程行
和220个流程rpt行
包含这些建议
IF
代码不应包括最初表示的和
。它会导致遗漏一些值,其中yrs serv中的为15
、07
或02
。这些特定值导致(或将导致)先前确定的位置出现在输出中。这一变化已在下文作出
还有这条线
05 ws-emp-name pic 9(15).
应该是
05 ws-emp-name pic x(15).
我看到的问题是ws-position
的正确值显示在下一条记录上;这是因为打印行后确定了ws-calc位置。这导致第一条记录上出现空白,并且以下打印行的值不正确
我建议将用于确定ws-calc位置的代码移动到需要之前<代码>120个流程行
和220个流程rpt行
包含这些建议
IF
代码不应包括最初表示的和
。它会导致遗漏一些值,其中yrs serv中的为15
、07
或02
。这些特定值导致(或将导致)先前确定的位置出现在输出中。这一变化已在下文作出
还有这条线
05 ws-emp-name pic 9(15).
应该是
05 ws-emp-name pic x(15).
请不要对我们大喊大叫!用大写字母书写通常被认为是大喊大叫。请不要对我们大喊大叫!用大写字母书写通常被认为是大声喊叫。这很有效!我总是后悔我愚蠢的错误。谢谢成功了!我总是后悔我愚蠢的错误。谢谢
05 ws-emp-name pic x(15).
120-process-lines.
* Decide whether to output to report or data file
*
if il-88-type-K
perform 210-process-data-lines
else
add 1 to ws-line-count
* if ws-line-count = 1
* perform 120-print-headings
* end-if
perform 220-process-rpt-lines
if ws-line-count > ws-lines-per-page
or ws-eof-flag = "y"
perform 230-print-page-totals
end-if
end-if.
* NOTE: Moved code to determine position to 225-determine-position
*
* Read next input record for the next iteration of perform loop
*
read input-file
at end
move "y" to ws-eof-flag.
220-process-rpt-lines.
*
*
* Count staff and accumulate salary for page subtotals
*
add 1 to ws-s-staff-count.
add in-prsnt-sly to ws-s-salary.
*
*
* Output Salesperson Detail Line
*
* Clear the detail line
move spaces to ws-record-line.
*
*
* Move input lines(sales-file) to output lines(report-line)
*
move in-emp-no to ws-emp-num.
move in-name to ws-emp-name.
move in-yrs-serv to ws-years.
move in-prsnt-sly to ws-salary.
move ws-page-count to page-num.
move ws-o-staff-count to ws-oth-staff-count.
perform 225-determine-position.
move ws-calc-position to ws-position.
*
write output-line from ws-record-line.
225-determine-position.
*
* Logic to calculate the POSITION based on years of xp..
*
if in-yrs-serv > 15
then
move "ANALYST" to ws-calc-position
else
**
if in-yrs-serv > 7
then
move "SEN PROG" to ws-calc-position
else
***
if in-yrs-serv > 2
then
move "PROG" to ws-calc-position
else
****
move "UNCLASSIFIED" to ws-calc-position
****
end-if
***
end-if
**
end-if.