2012-07-18 49 views
0

需要我的COBOL任務幫助。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. 
+0

TBH,我不知道任何人都得到了COBOL任務。這是一種懲罰嗎? – 2012-07-18 11:47:04

+0

許多COBOL仍然存在,有人必須照顧它。 – 2012-07-18 15:13:40

回答

1

我不會計算所有的數據並加起來,但似乎你可能會很長。

它沒有明確說明在這裏,但它看起來像你在你的BONUS-REPORT記錄可能是HDR-nDETAIL-LINEREDEFINES,所以最長的這些計數(假設固定長度的記錄)的記錄大小。

計數BONUS-OUT爲10.不應該對齊,因爲默認情況下所有內容都是USAGE IS DISPLAYVALUE子句在計數中沒有區別。

0

嚴格地說獎金紀錄是因爲222個字節你說的話是: -

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

什麼你可能問是什麼,是的各種表頭和明細條目的長度。

通常這些將全部寫爲單獨的記錄 - 所以最長的記錄將是81字節的HDR-1。所有其他人都較短。

+0

我把HDR-1列爲81個字符。 – 2012-07-18 13:59:03

+0

我也是,81個字符。 – 2012-07-18 15:14:39

+0

@David Gorsline - 哎呀,將編輯! – 2012-07-19 01:39:48

0

你的問題的答案是要求編譯器的答案。

也就是說,按原樣編譯程序並檢查編譯器列表,它應該告訴你每個字段和記錄有多長。然後,您可以返回到源代碼並根據需要進行更新。

根據您使用的環境(大型機,unix,windows等),可能需要設置某些編譯器選項來告訴編譯器創建該種編譯器列表。對於我在4.2版本的大型機上使用z/OS的編譯器,這些選項全部記錄在Enterprise COBOL for z/OS編程指南http://pic.dhe.ibm.com/infocenter/pdthelp/v1r1/topic/com.ibm.entcobol.doc_4.2/PGandLR/ref/rpcos390.htm中。