2016-10-01 42 views
0

COBOL程序:嗨,我是COBOl的新手。我无法显示我的页眉和页脚。我已经读了这本书,并在网上看了一下,有没有进展

IDENTIFICATION DIVISION.       
PROGRAM-ID. PROG-TWO.       
AUTHOR.  MARKIED JONES.      


FD PATRON-LIST.         
01 PATRON-LINE  PIC X(80).     



ENVIRONMENT DIVISION.        

INPUT-OUTPUT SECTION.        
FILE-CONTROL.          
    SELECT PATRON-FILE ASSIGN TO INFILE.   
    SELECT PATRON-LIST ASSIGN TO OUTFILE.   

DATA DIVISION.          


FILE SECTION.          
FD PATRON-FILE.         
01 PATRON-RECORD.         
    03 PR-NAME    PIC X(18).   
    03 PR-ADDRESS   PIC X(18).   
    03 PR-CITY-STATE-ZIP  PIC X(24).   
    03 PR-TARGET-CONTR  PIC 9(4).    
    03 PR-ACTUAL-CONTR  PIC 9(4).    
    03 PR-CONTR-DATE.        
     05 PR-CONTR-MONTH  PIC XX.    
     05 PR-CONTR-DAY  PIC XX.    
     05 PR-CONTR-YEAR  PIC XX.    
    03 FILLER    PIC X(6).      
FD PATRON-LIST.            
01 PATRON-LINE.            
    03 FILLER    PIC X.       
    03 PL-NAME    PIC X(18).      
    03 FILLER    PIC X.       
    03 PL-ADDRESS   PIC X(18).      
    03 FILLER    PIC XX.       
    03 PL-CITY-STATE-ZIP  PIC X(24).      
WORKING-STORAGE SECTION.          


01 WS-PATRON-LINE   PIC X(80).      

01 WS-HEADER-LINE-1.           

    03 FILLER    PIC X(18) VALUE SPACES.   
    03 FILLER    PIC X(7) VALUE "INDIANA".  
    03 FILLER    PIC X  VALUE SPACE.   
    03 FILLER    PIC X(10) VALUE "UNIVERSITY". 
    03 FILLER    PIC X  VALUE SPACE.   
    03 FILLER    PIC X(2) VALUE "OF".   
    03 FILLER    PIC X  VALUE SPACE.   
    03 FILLER    PIC X(12) VALUE "PENNSYLVANIA". 

01 WS-HEADER-LINE-1-UL.          

    03 FILLER    PIC X(18) VALUE SPACES.   
    03 FILLER    PIC X(7) VALUE "-".   
    03 FILLER    PIC X  VALUE SPACE.   
    03 FILLER    PIC X(10) VALUE "-".   
    03 FILLER    PIC X  VALUE SPACE.   
    03 FILLER    PIC X  VALUE "-".   
    03 FILLER    PIC X  VALUE SPACE.   
    03 FILLER    PIC X(12) VALUE "-".   
01 HEADER-LINE-2. 
03 FILLER    PIC X(20) VALUE SPACES.         
    03 FILLER    PIC X(8) VALUE "COMPUTER". 
    03 FILLER    PIC X  VALUE SPACE.  
    03 FILLER    PIC X(7) VALUE "SCIENCE". 
    03 FILLER    PIC X  VALUE SPACE.  
    03 FILLER    PIC X(10) VALUE "DEPARTMENT". 
01 HEADER-LINE-2-UL.          
    03 FILLER    PIC X(20) VALUE SPACES.  
    03 FILLER    PIC X(8) VALUE ALL"-".  
    03 FILLER    PIC X  VALUE SPACE.  
    03 FILLER    PIC X(7) VALUE ALL"=".  
    03 FILLER    PIC X  VALUE SPACE.  
    03 FILLER    PIC X(10) VALUE ALL"-".  
01 HEADER-LINE-3.           
    03 FILLER    PIC X(22) VALUE SPACES.  
    03 FILLER    PIC X(7) VALUE "LISTING". 
    03 FILLER    PIC X  VALUE SPACE.  
    03 FILLER    PIC X(2) VALUE "OF".   
    03 FILLER    PIC X  VALUE SPACE.  
    03 FILLER    PIC X(7) VALUE "PATRONS". 
01 HEADER-LINE-3-UL.          
    03 FILLER    PIC X(22) VALUE SPACES.  
    03 FILLER    PIC X(7) VALUE "-".   
    03 FILLER    PIC X  VALUE SPACE.  
    03 FILLER    PIC X(2) VALUE "-".   
    03 FILLER    PIC X  VALUE SPACE.  
    03 FILLER    PIC X(7) VALUE "-".   
01 WS-COLUMN-HEADER-1.         
    03 FILLER    PIC X(4) VALUE SPACES.  
    03 FILLER    PIC X(6) VALUE "PATRON".  
    03 FILLER    PIC X(8) VALUE SPACES.  
    03 FILLER    PIC X(6) VALUE "PATRON".  
    03 FILLER    PIC X(15) VALUE SPACES.  
    03 FILLER    PIC X(6) VALUE "PATRON".  
01 WS-COLUMN-HEADER-1UL.         
    03 FILLER    PIC X(4) VALUE SPACES.  
    03 FILLER    PIC X(6) VALUE "-".   
    03 FILLER    PIC X(8) VALUE SPACES.  
    03 FILLER    PIC X(6) VALUE "-".     
    03 FILLER    PIC X(15) VALUE SPACES.    
    03 FILLER    PIC X(6) VALUE "-".     
01 WS-COLUMN-HEADER-2.           
    03 FILLER    PIC X(4) VALUE SPACES.    
    03 FILLER    PIC X(4) VALUE "NAME".    
    03 FILLER    PIC X(8) VALUE SPACES.    
    03 FILLER    PIC X(7) VALUE "ADDRESS".   
    03 FILLER    PIC X(12) VALUE SPACES.    
    03 FILLER    PIC X(14) VALUE "CITY-STATE-ZIP". 
01 WS-COLUMN-HEADER-2UL.           
    03 FILLER    PIC X(4) VALUE SPACES.    
    03 FILLER    PIC X(4) VALUE "-".     
    03 FILLER    PIC X(8) VALUE SPACES.    
    03 FILLER    PIC X(7) VALUE "-".     
    03 FILLER    PIC X(12) VALUE SPACES.    
    03 FILLER    PIC X(14) VALUE "-".     
01 WS-FOOTER-LINE-1.            
    03 FILLER    PIC X(24) VALUE      
           "TOTAL # OF PATRONS:".    
    03 WS-NUM-PATRONS  PIC Z9.        
01 WS-FOOTER-LINE-2.            
    03 FILLER    PIC X(32) VALUE      
           "PROGRAMMED BY A COSC 220 STUDENT". 



    01 WS-EOF-SWITCH    PIC X(3).       
    PROCEDURE DIVISION.            
    000-PRINT-PATRON-LIST.           

     OPEN INPUT PATRON-FILE          

      OUTPUT PATRON-LIST      
    MOVE "NO" TO WS-EOF-SWITCH     
    READ PATRON-FILE        
      AT END MOVE "YES" TO WS-EOF-SWITCH  
    END-READ          
    PERFORM 100-PROCESS-PATRON-RECORD   
     UNTIL WS-EOF-SWITCH IS EQUAL TO "YES" 
    CLOSE PATRON-FILE PATRON-LIST    
    STOP RUN          
    .           

100-PROCESS-PATRON-RECORD.      
     MOVE PR-NAME TO PL-NAME      
     MOVE PR-ADDRESS TO PL-ADDRESS    
     MOVE PR-CITY-STATE-ZIP TO PL-CITY-STATE-ZIP 
     WRITE PATRON-LINE       
     READ PATRON-FILE       
     AT END MOVE "YES" TO WS-EOF-SWITCH  
     END-READ         
     .           

    200-PRINT-PATRON-LINE.        
+0

你读过哪本书? –

回答

0

究竟什么是你的问题,你只是做

write PATRON-LINE from WS-HEADER-LINE-1 
    write PATRON-LINE from WS-HEADER-LINE-1-UL 
    ... 

我个人会把页打印代码本身是一个过程(和检查线路号)

r0900-Page-header. 

    if line-number > ... 
     write PATRON-LINE from WS-HEADER-LINE-1 
          after advancing page 
     ... 
     move ...    to line-number 
    end-if 
    . 

也期待在advancing clause

+0

我刚刚尝试了您建议的代码片段:200-PRINT-PATRON-LINE。从WS-HEADER-LINE-1编写PATRON-LINE 从WS-HEADER-LINE-1-UL编写PATRON-LINE ........它仍然只显示我的输出与页眉或页脚。 – Markie9

+0

你能更新问题中的代码吗?你还从哪里调用了新的程序? –

0

一旦打开输出文件,您可以使用单独的para逐个写入所有标题。移动并写入每个标题后,不要忘记初始化PATRON-LINE。

+0

我非常喜欢cobol。你能写一个你正在描述的例子吗? – Markie9

0

打开输出文件后。在下面添加执行语句。

PERFORM 050-WRITE-HEADER。

050-WRITE-HEADER。 INITIALIZE PATRON-LINE MOVE WS-HEADER-LINE-1至PATRON-LINE WRITE PATRON-LINE

INITIALIZE PATRON-LINE MOVE WS-HEADER-LINE-1-UL TO守护神-LINE WRITE PATRON- LINE

相同的标题2和3.

+0

INITIALIZE,移动到同一领域?你不信任电脑吗?请注意,这不是一个“论坛”。你不会为每条评论做出回答,只是为了在你有50点声望点前不能发表评论。 –

+0

另外,在不需要时输出标题非常草率(非常普遍)。如果你不写输出线(没有任何符合条件)会怎么样?你仍然会得到标题,但只是标题。 –

相关问题