Chinaunix

标题: 錯在那裡-clp & rpg [打印本页]

作者: selinaT    时间: 2007-06-11 17:26
标题: 錯在那裡-clp & rpg
以下是有問題的程式, 但不知道錯在那裡? 請個位高手指導我這新手.

CLP:
                                                               
    OVRDBF     FILE(LF_A) TOFILE(LF_A) SHARE(*YES)         
    OPNQRYF    FILE((LF_A)) QRYSLT('Field1 = +                 
                 %wldcrd("N*")') KEYFLD((Field2))               
                                                               
    OVRPRTF    FILE(PRTF) TOFILE(PRTF) PAGESIZE(66 132) +  
                 LPI(6) CPI(15) OVRFLW(60) OUTQ(&PRT) +        
                 SCHEDULE(*IMMED) HOLD(&HOLD)                  
               
                             
    CALL       PGM(&RPGN)   
    RCLRSC                  
    DLTOVR     FILE(*ALL)   
    ENDPGM                  
                                                              

RPG:

H        1   Y                                             
*----------------------------------------------------------
FLF_A  IP  E           K        DISK                     
*                                                         
FPF_A    IF  E           K        DISK                     
F            A                                KRENAMEA1   
*                                                         
FPRTF   O   E             81     PRINTER                  
*----------------------------------------------------------
IA                                                         
I                                              FIELD2  L1     
I            DS                                             
I            DS                                       
I                                        1  12 FIELD1   
I                                        1   1 F_A   
I                                        2   2 F_B   
I                                        3   3 F_C   
*-----------------------------------------------------
  * MAIN PROGRAM                                 
  *----------------------------------------------
C   L1                EXSR SRL1                 
C                     EXSR SR01                 
  *----------------------------------------------
  * SUBROUTINE - SRL1                           
  *----------------------------------------------
CSR         SRL1      BEGSR                     
  *                                             
C           F_A      IFEQ 'N'                  
C                     CLEARRP_H                 
  C                     CLEARRP_D                     
  *                                                   
C                     MOVELA1      #A01   7      
  *                                                   
C                     MOVELFIELD2      #DNO         
C           FIELD2      CHAINPF_A                 99   
C  N99                MOVELFILED3      #DNM         
C   99                MOVEL*BLANK    #DNM         
  *                                                                                                  
C                     WRITERP_H                       
  *                                                   
C           #A01     CHAINPF_A                 99   
C                     ENDIF                           
  *                                                   
CSR                   ENDSR                           
  *----------------------------------------------------
  * SUBROUTINE - SR01                                 
  *----------------------------------------------------
CSR         SR01      BEGSR                  
  *                                            
C           F_A      IFEQ 'N'               
C                     MOVELA1      A01#   
C                     MOVELA2      A02 #   
C                     MOVELA3      A03 #   
  *                                            
C                     MOVELA8     A08 #        
C                     MOVELA9     A09 #        
C                     MOVELA10     A10#         
C                     MOVELA11      A11 #         
  *                                                  
C           *IN81     IFEQ *ON                     
C                     WRITERP_H                     
C                     SETOF                     81  
C                     ENDIF                        
                                                     
  *                                   
C                     WRITERP_D      
C                     ENDIF         
  *                                   
CSR                   ENDSR         
************** End of data ***********



REPORT:
RP_H:

#DNO           #DNM
NAME                ADDRESS                PHONE NO.

RP_D:
A01#                A08#                        A11#
A02#                A09#                       
A03#                A10#


BUT THE REPORT COME OUT AS BELOW:
#DNO           #DNM        (PAGE1)

#DNO           #DNM (PAGE2)

#DNO           #DNM (PAGE3)
NAME            ADDRESS                PHONE NO.
ABC                STREET ….                02…….
…..

有的只顯示RP_H, 沒有RP_D 為什麼會如此?

[ 本帖最后由 selinaT 于 2007-6-12 08:48 编辑 ]
作者: tomroom    时间: 2007-06-12 13:08
先判读下open query 是否正确, 用 CPYFRMQRYF 在open query 之后把open query 结果 cpy到 自己lib的临时表,确认 这个正确。
作者: selinaT    时间: 2007-06-12 16:30
原帖由 tomroom 于 2007-6-12 13:08 发表
先判读下open query 是否正确, 用 CPYFRMQRYF 在open query 之后把open query 结果 cpy到 自己lib的临时表,确认 这个正确。


先謝謝你幫忙!
用CPYFRMQRYF之後看了資料正確.

這樣應該是rpg的問題...
可以分到組織但沒辦法列印組織內的資料, 為什麼

[ 本帖最后由 selinaT 于 2007-6-12 16:34 编辑 ]
作者: selinaT    时间: 2007-06-12 16:49
我發現列印出的報表,只要組織內如果只有一位member就沒有顯示資料,如果有5位member就只顯示4位而已.
作者: vigerguo    时间: 2007-06-13 15:42
用strdbg来一步一步查一下,应该很快就知道了。
你这样贴出来谁也不知道呀,很多种可能的。
还是具体情况自己要具体判断。多注意每个变量的付值情况。
作者: selinaT    时间: 2007-06-13 16:30
标题: 回复 5楼 vigerguo 的帖子
不知道如何使用STRDBG, 我希望大家幫忙看看問題在那裡?
作者: selinaT    时间: 2007-06-19 10:09
沒有人幫到我嗎?
我發現SUBROUTINE - SRL1有問題 - 沒有做到 level break control.
至於為什麼第一筆記錄沒有顯示就不知道什麼原因了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2