中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 操作系统 > IBM Server
rpg的小问题谁能解决一下,先谢了!(新手)
作者:未知 时间:2005-09-13 15:46 出处:ChinaUnix.net 责编:chinaitpower
              摘要:rpg的小问题谁能解决一下,先谢了!(新手)

Keyword 'CA03' not valid for this file type.

如下图:






 danli 回复于:2004-07-30 12:28:04
你用以下格式试试
A                                      CF03(03 'F3=EXIT')

 danli 回复于:2004-07-30 12:31:07
如果你的程式类型为RPG就不行了(应为DSPF)

 fzrxh 回复于:2004-07-30 12:32:32
[quote:6970f319ec="人世间"]Keyword 'CA03' not valid for this file type.

如下图:[/quote:6970f319ec]
要确认type是dspf

 zhoumochi 回复于:2004-07-30 12:41:33
[quote:ea724dc9a3="danli"]你用以下格式试试
A                                      CF03(03 'F3=EXIT')[/quote:ea724dc9a3]


能問一下CF03跟CA03的區別嗎? 謝謝!

 liu_fp 回复于:2004-07-30 12:59:49
CA03应该是默认标志*INKC吧。CF03好像可以自己定义标志的。

 人世间 回复于:2004-07-30 14:59:24
原程序是这样的,但是不能编译,是40的错误:
大概初学者都是这样的程序是抄完了,但是一旦出错就不会找了。请再看看。

DDS文件
CUST        PF          CUST
 .....A..........T.Name++++++RLen++TDpB......Functions++++++++
 *************** Beginning of data ***************************
      A          R CUSTR                     TEXT('CUSTOMER') 
      A            CUS#           6S 0       TEXT('CUST #')   
      A            CUSNAM        30A         TEXT('NAME')     
      A            CUSAD1        30A         TEXT('ADDRESS 1')
      A            CUSAD2        30A         TEXT('ADDRESS 2')
      A            CUSCTY        20A         TEXT('CITY')     
      A            CUSSTA         2A         TEXT('STATE')    
      A            CUSZIP         5S 0       TEXT('ZIP')      
      A          K CUS#                                       
 ****************** End of data ******************************

CUSTD01     DSPF        CUSTD01
.....AAN01N02N03T.Name++++++RLen++TDpBLinPosFunctions++++++++++++++++++ 
*************** Beginning of data ************************************* 
     A                                      REF(CUST)                   
     A                                      CA03(03 'F3=EXIT')          
     A          R SCR1                                                  
     A                                  1  2USER                        
     A                               O  1 28'ADD/UPDATE/DELETE/INQUIRE' 
     A                                      DSPATR(HI)                  
     A                                  1 72DATE                        
     A                                      EDTCDE(Y)                   
     A                                  2  2'CUSTR01'                   
     A                                  2 72TIME                        
     A                               O  6  8'(A)DD, (U)PDATE, (D)ELETE' 
     A                               O  6 34'(I)NQUIRE, (N)EXT'         
     A            ACTION         1   B  6 53DSPATR(HI)                  
     A                               O  8 28'CUST#'                     
     A            CUS#      R        B  8 35DSPATR(HI) EDTCDE(4)        
     A            ERRLIN        78   O 22  2                            
     A                                  2  2'CUSTR01'                  
     A                                  2 72TIME                       
     A                               O  6  8'(A)DD, (U)PDATE, (D)ELETE'
     A                               O  6 34'(I)NQUIRE, (N)EXT'        
     A            ACTION         1   B  6 53DSPATR(HI)                 
     A                               O  8 28'CUST#'                    
     A            CUS#      R        B  8 35DSPATR(HI) EDTCDE(4)       
     A            ERRLIN        78   O 22  2                           
     A  90                                  DSPATR(RI)                 
     A                               O 23 14'F3=EXIT'                  
     A*----------------------------------------------------------------
     A          R SCR2                                                 
     A                                      CA09(09 'F9=DELETE')       
     A                                  1  2USER                       
     A                                  1 28'CUSTOMER FILE MAINTENANCE'
     A                                  1 72DATE                       
     A                                      EDTCDE(Y)                  
     A                               O 23 14'F3=EXIT'                  
     A*----------------------------------------------------------------
     A          R SCR2                                                 
     A                                      CA09(09 'F9=DELETE')       
     A                                  1  2USER                       
     A                                  1 28'CUSTOMER FILE MAINTENANCE'
     A                                  1 72DATE                       
     A                                      EDTCDE(Y)                  
     A                                  2  2'CUSTR01'                  
     A            MODE           7   O  2 37                           
     A                                  2 72TIME                       
     A                                  3 28'CUST#'                    
     A            CUS#      R        O  3 37EDTCDE(4) DSPATR(RI)       
     A                                  8 28'NAME'                     
     A            CUSNAM    R        B  8 42                           
     A N80                                  DSPATR(HI)                 
     A  80                                  DSPATR(PR)                 
     A            MODE           7   O  2 37                         
     A                                  2 72TIME                     
     A                                  3 28'CUST#'                  
     A            CUS#      R        O  3 37EDTCDE(4) DSPATR(RI)     
     A                                  8 28'NAME'                   
     A            CUSNAM    R        B  8 42                         
     A N80                                  DSPATR(HI)               
     A  80                                  DSPATR(PR)               
     A                                  9 28'ADDRESS 1'              
     A            CUSAD1    R        B  9 42                         
     A N80                                  DSPATR(HI)               
     A  80                                  DSPATR(PR)               
     A                                 10 28'ADDRESS 2'              
     A            CUSAD2    R        B 10 42                         
     A N80                                  DSPATR(HI)               
     A  80                                  DSPATR(PR)               
     A                                 11 28'CITY'                   
     A            CUSAD1    R        B  9 42                         
     A N80                                  DSPATR(HI)               
     A  80                                  DSPATR(PR)               
     A                                 10 28'ADDRESS 2'              
     A            CUSAD2    R        B 10 42                         
     A N80                                  DSPATR(HI)               
     A  80                                  DSPATR(PR)               
     A                                 11 28'CITY'                   
     A            CUSCTY    R        B 11 42                         
     A N80                                  DSPATR(HI)               
     A  80                                  DSPATR(PR)               
     A                                 12 28'STATE'                  
     A            CUSSTA    R        B 12 42                         
     A N80                                  DSPATR(HI)               
     A  80                                  DSPATR(PR)               
     A                                 13 28'ZIP'                    
     A            CUSZIP    R     Y  B 13 42                         
    A N80                                  DSPATR(HI)   
    A  80                                  DSPATR(PR)   
    A                                 12 28'STATE'      
    A            CUSSTA    R        B 12 42             
    A N80                                  DSPATR(HI)   
    A  80                                  DSPATR(PR)   
    A                                 13 28'ZIP'        
    A            CUSZIP    R     Y  B 13 42             
    A N80                                  DSPATR(HI)   
    A  80                                  DSPATR(PR)   
    A            ERRLIN        78   O 22  2             
    A  90                                  DSPATR(RI)   
    A                               O 23 14'F3=EXIT'    


RPG 程序
CUSTR01     RPG         CUSTR01
     FCUSTD01 CF  E                    WORKSTN                         
     FCUST    UF  E           K        DISK                      A     
      *----------------------------------------------------------------
      * Define error messages here                                     
     I              'RECORD ALREADY ON FI-C         ERR1               
     I              'LE'                                               
     I              'RECORD IS NOT ON FIL-C         ERR2               
     I              'E'                                                
     I              'NO MORE RECORDS'     C         ERR3               
     I              'ZIP CANNOT BE ZERO'  C         ERR6               
     I              'NAME  MUST NOT BE BL-C         ERR7               
     I              'ANK'                                              
     I              'STATE MUST NOT BE BL-C         ERR8               
     I              'ANK'                                              
     I              'ACTION MUST BE A, U,-C         ERR9               
     I              ' D OR I'                                          
     I              'RECORD ADDED SUCCE-  C         MSG1               
     I              'SSFULLY'                                          
     I              'RECORD UPDATED SUC-  C         MSG2               
     I              'CESSFULLY'                                        
     I              'RECORD DELETED SUC-  C         MSG3               
     I              'CESSFULLY'                                        
     I              'HIT F9 TO DELETE'    C         MSG4               
     I              'NO ACTION TAKEN'     C         MSG9               
      *----------------------------------------------------------------
      * Key List for customer file                                     
      *     (a key list is not needed since this file has only 1 key   
      *      field, but this makes the program easier to modify if     
      *      the file has multiple key fields)                         
     C           KEYLST    KLIST                                       
     C                     KFLD           CUS#                         
      *----------------------------------------------------------------
      * Stay in Main DO LOOP until F3 is hit from SCR1                 
      *----------------------------------------------------------------
     C           *IN03     DOWEQ*OFF                                   
      * Show main ADD/UPD/INQ/DLT screen                               
     C                     EXFMTSCR1                                   
     C                     CLEARERRLIN                                 
     C                     MOVE *OFF      *IN90                        
      * If user didn't hit F3, process screen based on action          
     C           *IN03     IFEQ *OFF                                   
     C                     SELEC                                   
     C           ACTION    WHEQ 'A'                                
     C                     EXSR ADDREC                             
     C           ACTION    WHEQ 'D'                                
     C                     EXSR DLTREC                             
     C           ACTION    WHEQ 'I'                                
     C                     EXSR INQREC                             
     C           ACTION    WHEQ 'N'                                
     C                     EXSR NXTREC                             
     C           ACTION    WHEQ 'U'                                
     C                     EXSR UPDREC                             
     C                     OTHER                                   
     C                     CLEARERRLIN                             
     C                     MOVELERR9      ERRLIN                   
     C                     MOVE *ON       *IN90                    
     C                     ENDSL                                   
     C                     ENDIF                                   
     C                     ENDDO                                   
      *                                                            
     C                     MOVE *ON       *INLR                    
     C                     RETRN                                   
      *----------------------------------------------------------------
     C           ADDREC    BEGSR                                       
      * Unprotect fields but setting *in80 off                         
     C                     MOVE *OFF      *IN80                        
     C                     MOVE '  ADD  ' MODE                         
      * See if customer # is already in CUST file                      
     C           KEYLST    CHAINCUST                 91                
     C           *IN91     IFEQ *OFF                                   
      * If customer # is already in cust file, load up ERR MSG         
     C                     CLEARERRLIN                                 
     C                     MOVELERR1      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ELSE                                        
     C                     EXSR ADDSCR                                 
     C                     ENDIF                                       
     C                     ENDSR                                       
      *----------------------------------------------------------------
      * SHOW ADD SCREEN                                                
      *----------------------------------------------------------------
     C           ADDSCR    BEGSR                                       
      * Clear customer record except for key field(s)                  
     C           *NOKEY    CLEARCUSTR                               
     C                     MOVE 'N'       RECOK   1                 
      * Keep showing screen until record passes edit or F3 is hit   
     C           RECOK     DOWEQ'N'                                 
     C           *IN03     ANDEQ*OFF                                
     C                     EXFMTSCR2                                
      *                                                             
     C           *IN03     IFEQ *OFF                                
     C                     EXSR EDTCUS                              
     C           RECOK     IFEQ 'Y'                                 
     C                     WRITECUSTR                               
      * Show messaage that ADD was successful                       
     C                     CLEARERRLIN                              
     C                     MOVELMSG1      ERRLIN                    
     C                     ENDIF                                    
     C                     ELSE                                     
      * Show message that no action was taken because F3 was hit    
     C                     CLEARERRLIN                              
     C                     MOVELMSG9      ERRLIN                    
     C                     ENDIF                                    
     C                     ENDDO                                    
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           DLTREC    BEGSR                                       
      * Disable fields for entry by setting *IN80 on                   
     C                     MOVE *ON       *IN80                        
     C                     MOVE 'DELETE'  MODE                         
     C                     CLEARERRLIN                                 
     C                     MOVELMSG4      ERRLIN                       
     C                     MOVE *ON       *IN90                        
      * See if customer # is in CUST file                              
     C           KEYLST    CHAINCUST                 91                
     C           *IN91     IFEQ *ON                                    
      * If customer # is not in CUST file, show ERR MSG                
     C                     CLEARERRLIN                                 
     C                     MOVELERR2      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ELSE                                        
     C                     EXFMTSCR2                                   
     C                     MOVE *OFF      *IN90                        
     C           *IN09     IFEQ *ON                                    
     C                     DELETCUSTR                                  
     C                     CLEARERRLIN                                 
     C                     MOVELMSG3      ERRLIN                       
     C                     ELSE                                        
     C                     CLEARERRLIN                                 
     C                     MOVELMSG9      ERRLIN                       
     C                     ENDIF                                       
     C                     ENDIF                                       
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           INQREC    BEGSR                                       
      * Disable fields for entry by setting *IN80 on                   
     C                     MOVE *ON       *IN80                        
     C                     MOVE 'INQUIRY' MODE                         
      * See if customer # is in CUST file                              
     C           KEYLST    CHAINCUST                 91                
     C           *IN91     IFEQ *ON                                    
      * If customer # is not in CUST file, show ERR MSG                
     C                     CLEARERRLIN                                 
     C                     MOVELERR2      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ELSE                                        
      * Show Inquiry Screen                                            
     C                     EXFMTSCR2                                   
     C                     ENDIF                                       
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           NXTREC    BEGSR                                       
      *                                                                
     C                     MOVE *ON       *IN80                        
     C                     MOVE 'INQUIRY' MODE                         
     C                     CLEARERRLIN                                 
      * Go forward in the file to the next record                      
     C           KEYLST    SETLLCUST                 92  93       
      * If *in92 is on, we have reached end of file               
     C           *IN92     IFEQ *ON                               
     C                     MOVELERR3      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
      * Read next record                                          
     C           ERRLIN    IFEQ *BLANKS                           
     C                     READ CUST                     90       
      * If *in90 is on, we have reached end of file               
     C           *IN92     IFEQ *ON                               
     C                     MOVELERR3      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
     C                     ENDIF                                  
      * If *in93 is on, we are at an existing record and we need  
      *    to read past it                                        
     C           ERRLIN    IFEQ *BLANKS                           
     C           *IN93     IFEQ *ON                               
     C                     READ CUST                     90       
      * If *in90 is on, we have reached end of file               
     C           *IN90     IFEQ *ON                                    
     C                     MOVELERR3      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ENDIF                                       
     C                     ENDIF                                       
     C                     ENDIF                                       
      *                                                                
     C           ERRLIN    IFEQ *BLANKS                                
     C                     EXFMTSCR2                                   
     C                     ENDIF                                       
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           UPDREC    BEGSR                                       
      * Unprotect fields but setting *in80 off                         
     C                     MOVE *OFF      *IN80                        
     C                     MOVE 'UPDATE ' MODE                         
      * See if customer # is already in CUST file                      
     C           KEYLST    CHAINCUST                 91                
     C           *IN91     IFEQ *ON                                    
      * If customer # is not in cust file, load up ERR MSG             
     C                     CLEARERRLIN                                 
     C                     MOVELERR2      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ELSE                                        
     C                     EXSR UPDSCR                                 
     C                     ENDIF                                       
     C                     ENDSR                                       
      *----------------------------------------------------------------
      * SHOW UPDATE SCREEN                                             
      *----------------------------------------------------------------
     C           UPDSCR    BEGSR                                       
     C                     MOVE 'N'       RECOK   1                    
      * Keep showing screen until record passes edit or F3 is hit      
     C           RECOK     DOWEQ'N'                                    
     C           *IN03     ANDEQ*OFF                                   
     C                     EXFMTSCR2                                   
      *                                                                
     C           *IN03     IFEQ *OFF                                   
     C                     EXSR EDTCUS                                 
     C           RECOK     IFEQ 'Y'                                    
     C                     UPDATCUSTR                                  
      * Show messaage that UPDATE was successful                       
     C                     CLEARERRLIN                                 
     C                     MOVELMSG2      ERRLIN                       
     C                     ENDIF                                       
     C                     ELSE                                        
      * Show message that no action was taken because F3 was hit       
     C                     CLEARERRLIN                                 
     C                     MOVELMSG9      ERRLIN                       
     C                     ENDIF                                       
     C                     ENDDO                                       
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           EDTCUS    BEGSR                                       
      * First, set error switch that record is OK                      
     C                     MOVE 'Y'       RECOK                        
      * Now, perform each edit                                 
     C           CUSNAM    IFEQ *BLANKS                           
     C                     MOVE 'N'       RECOK                   
     C                     CLEARERRLIN                            
     C                     MOVELERR7      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
      *                                                           
     C           CUSSTA    IFEQ *BLANKS                           
     C                     MOVE 'N'       RECOK                   
     C                     CLEARERRLIN                            
     C                     MOVELERR8      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
      *                                                           
     C           CUSZIP    IFEQ *ZERO                             
     C                     MOVE 'N'       RECOK                   
     C                     CLEARERRLIN                            
     C                     MOVELERR6      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
      *                                                           
     C                     ENDSR                                       
      *----------------------------------------------------------------

 fairyboy 回复于:2004-07-30 15:42:38
40的错误?
你的DDS和RPG都放在哪个LIB下的

 fairyboy 回复于:2004-07-30 15:48:14
你可以先输入:EDTLIBL(编辑库列表)
如果你的程序和DDS都放在MYLIB中,那么就把这个MYLIB加进去,再编译程序看看!

 zyzng 回复于:2004-07-30 15:55:06
CA means command key attenation. It means press this command key only.
CF means command key function. It means press the command key and enter.

 人世间 回复于:2004-07-30 16:02:07
都在MYLIB下。

 人世间 回复于:2004-07-30 16:10:03
看看下面三句是什么意思?

CUSTD01 FILE NOT REFERENCED FOR OUTPUT.               
CUSTD01 FILE NOT REFERENCED FOR INPUT.                
RPG PROVIDES SEPARATE INDICATOR AREA FOR FILE CUSTD01.

 fairyboy 回复于:2004-07-30 16:11:03
那你把这个MYLIB加入到当前库列表了没

 人世间 回复于:2004-07-30 16:26:11
加了,但是还是不行。

 fairyboy 回复于:2004-07-30 16:33:41
请你把代码用CODE形式发一次,OK
你上面代码的看起来很乱.

 人世间 回复于:2004-07-30 16:40:19
试试,多谢了。

   FCUSTD01 CF  E                    WORKSTN                         
     FCUST    UF  E           K        DISK                      A     
      *----------------------------------------------------------------
      * Define error messages here                                     
     I              'RECORD ALREADY ON FI-C         ERR1               
     I              'LE'                                               
     I              'RECORD IS NOT ON FIL-C         ERR2               
     I              'E'                                                
     I              'NO MORE RECORDS'     C         ERR3               
     I              'ZIP CANNOT BE ZERO'  C         ERR6               
     I              'NAME  MUST NOT BE BL-C         ERR7               
     I              'ANK'                                              
     I              'STATE MUST NOT BE BL-C         ERR8               
     I              'ANK'                                              
     I              'ACTION MUST BE A, U,-C         ERR9               
     I              ' D OR I'                                          
     I              'RECORD ADDED SUCCE-  C         MSG1               
     I              'SSFULLY'                                          
     I              'RECORD UPDATED SUC-  C         MSG2               
     I              'CESSFULLY'                                        
     I              'RECORD DELETED SUC-  C         MSG3               
     I              'CESSFULLY'                                        
     I              'HIT F9 TO DELETE'    C         MSG4               
     I              'NO ACTION TAKEN'     C         MSG9               
      *----------------------------------------------------------------
      * Key List for customer file                                     
      *     (a key list is not needed since this file has only 1 key   
      *      field, but this makes the program easier to modify if     
      *      the file has multiple key fields)                         
     C           KEYLST    KLIST                                       
     C                     KFLD           CUS#                         
      *----------------------------------------------------------------
      * Stay in Main DO LOOP until F3 is hit from SCR1                 
      *----------------------------------------------------------------
     C           *IN03     DOWEQ*OFF                                   
      * Show main ADD/UPD/INQ/DLT screen                               
     C                     EXFMTSCR1                                   
     C                     CLEARERRLIN                                 
     C                     MOVE *OFF      *IN90                        
      * If user didn't hit F3, process screen based on action          
     C           *IN03     IFEQ *OFF                                   
     C                     SELEC                                   
     C           ACTION    WHEQ 'A'                                
     C                     EXSR ADDREC                             
     C           ACTION    WHEQ 'D'                                
     C                     EXSR DLTREC                             
     C           ACTION    WHEQ 'I'                                
     C                     EXSR INQREC                             
     C           ACTION    WHEQ 'N'                                
     C                     EXSR NXTREC                             
     C           ACTION    WHEQ 'U'                                
     C                     EXSR UPDREC                             
     C                     OTHER                                   
     C                     CLEARERRLIN                             
     C                     MOVELERR9      ERRLIN                   
     C                     MOVE *ON       *IN90                    
     C                     ENDSL                                   
     C                     ENDIF                                   
     C                     ENDDO                                   
      *                                                            
     C                     MOVE *ON       *INLR                    
     C                     RETRN                                   
      *----------------------------------------------------------------
     C           ADDREC    BEGSR                                       
      * Unprotect fields but setting *in80 off                         
     C                     MOVE *OFF      *IN80                        
     C                     MOVE '  ADD  ' MODE                         
      * See if customer # is already in CUST file                      
     C           KEYLST    CHAINCUST                 91                
     C           *IN91     IFEQ *OFF                                   
      * If customer # is already in cust file, load up ERR MSG         
     C                     CLEARERRLIN                                 
     C                     MOVELERR1      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ELSE                                        
     C                     EXSR ADDSCR                                 
     C                     ENDIF                                       
     C                     ENDSR                                       
      *----------------------------------------------------------------
      * SHOW ADD SCREEN                                                
      *----------------------------------------------------------------
     C           ADDSCR    BEGSR                                       
      * Clear customer record except for key field(s)                  
     C           *NOKEY    CLEARCUSTR                               
     C                     MOVE 'N'       RECOK   1                 
      * Keep showing screen until record passes edit or F3 is hit   
     C           RECOK     DOWEQ'N'                                 
     C           *IN03     ANDEQ*OFF                                
     C                     EXFMTSCR2                                
      *                                                             
     C           *IN03     IFEQ *OFF                                
     C                     EXSR EDTCUS                              
     C           RECOK     IFEQ 'Y'                                 
     C                     WRITECUSTR                               
      * Show messaage that ADD was successful                       
     C                     CLEARERRLIN                              
     C                     MOVELMSG1      ERRLIN                    
     C                     ENDIF                                    
     C                     ELSE                                     
      * Show message that no action was taken because F3 was hit    
     C                     CLEARERRLIN                              
     C                     MOVELMSG9      ERRLIN                    
     C                     ENDIF                                    
     C                     ENDDO                                    
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           DLTREC    BEGSR                                       
      * Disable fields for entry by setting *IN80 on                   
     C                     MOVE *ON       *IN80                        
     C                     MOVE 'DELETE'  MODE                         
     C                     CLEARERRLIN                                 
     C                     MOVELMSG4      ERRLIN                       
     C                     MOVE *ON       *IN90                        
      * See if customer # is in CUST file                              
     C           KEYLST    CHAINCUST                 91                
     C           *IN91     IFEQ *ON                                    
      * If customer # is not in CUST file, show ERR MSG                
     C                     CLEARERRLIN                                 
     C                     MOVELERR2      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ELSE                                        
     C                     EXFMTSCR2                                   
     C                     MOVE *OFF      *IN90                        
     C           *IN09     IFEQ *ON                                    
     C                     DELETCUSTR                                  
     C                     CLEARERRLIN                                 
     C                     MOVELMSG3      ERRLIN                       
     C                     ELSE                                        
     C                     CLEARERRLIN                                 
     C                     MOVELMSG9      ERRLIN                       
     C                     ENDIF                                       
     C                     ENDIF                                       
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           INQREC    BEGSR                                       
      * Disable fields for entry by setting *IN80 on                   
     C                     MOVE *ON       *IN80                        
     C                     MOVE 'INQUIRY' MODE                         
      * See if customer # is in CUST file                              
     C           KEYLST    CHAINCUST                 91                
     C           *IN91     IFEQ *ON                                    
      * If customer # is not in CUST file, show ERR MSG                
     C                     CLEARERRLIN                                 
     C                     MOVELERR2      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ELSE                                        
      * Show Inquiry Screen                                            
     C                     EXFMTSCR2                                   
     C                     ENDIF                                       
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           NXTREC    BEGSR                                       
      *                                                                
     C                     MOVE *ON       *IN80                        
     C                     MOVE 'INQUIRY' MODE                         
     C                     CLEARERRLIN                                 
      * Go forward in the file to the next record                      
     C           KEYLST    SETLLCUST                 92  93       
      * If *in92 is on, we have reached end of file               
     C           *IN92     IFEQ *ON                               
     C                     MOVELERR3      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
      * Read next record                                          
     C           ERRLIN    IFEQ *BLANKS                           
     C                     READ CUST                     90       
      * If *in90 is on, we have reached end of file               
     C           *IN92     IFEQ *ON                               
     C                     MOVELERR3      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
     C                     ENDIF                                  
      * If *in93 is on, we are at an existing record and we need  
      *    to read past it                                        
     C           ERRLIN    IFEQ *BLANKS                           
     C           *IN93     IFEQ *ON                               
     C                     READ CUST                     90       
      * If *in90 is on, we have reached end of file               
     C           *IN90     IFEQ *ON                                    
     C                     MOVELERR3      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ENDIF                                       
     C                     ENDIF                                       
     C                     ENDIF                                       
      *                                                                
     C           ERRLIN    IFEQ *BLANKS                                
     C                     EXFMTSCR2                                   
     C                     ENDIF                                       
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           UPDREC    BEGSR                                       
      * Unprotect fields but setting *in80 off                         
     C                     MOVE *OFF      *IN80                        
     C                     MOVE 'UPDATE ' MODE                         
      * See if customer # is already in CUST file                      
     C           KEYLST    CHAINCUST                 91                
     C           *IN91     IFEQ *ON                                    
      * If customer # is not in cust file, load up ERR MSG             
     C                     CLEARERRLIN                                 
     C                     MOVELERR2      ERRLIN                       
     C                     MOVE *ON       *IN90                        
     C                     ELSE                                        
     C                     EXSR UPDSCR                                 
     C                     ENDIF                                       
     C                     ENDSR                                       
      *----------------------------------------------------------------
      * SHOW UPDATE SCREEN                                             
      *----------------------------------------------------------------
     C           UPDSCR    BEGSR                                       
     C                     MOVE 'N'       RECOK   1                    
      * Keep showing screen until record passes edit or F3 is hit      
     C           RECOK     DOWEQ'N'                                    
     C           *IN03     ANDEQ*OFF                                   
     C                     EXFMTSCR2                                   
      *                                                                
     C           *IN03     IFEQ *OFF                                   
     C                     EXSR EDTCUS                                 
     C           RECOK     IFEQ 'Y'                                    
     C                     UPDATCUSTR                                  
      * Show messaage that UPDATE was successful                       
     C                     CLEARERRLIN                                 
     C                     MOVELMSG2      ERRLIN                       
     C                     ENDIF                                       
     C                     ELSE                                        
      * Show message that no action was taken because F3 was hit       
     C                     CLEARERRLIN                                 
     C                     MOVELMSG9      ERRLIN                       
     C                     ENDIF                                       
     C                     ENDDO                                       
      *                                                                
     C                     MOVE *OFF      *IN03                        
      *                                                                
     C                     ENDSR                                       
      *----------------------------------------------------------------
     C           EDTCUS    BEGSR                                       
      * First, set error switch that record is OK                      
     C                     MOVE 'Y'       RECOK                        
      * Now, perform each edit                                 
     C           CUSNAM    IFEQ *BLANKS                           
     C                     MOVE 'N'       RECOK                   
     C                     CLEARERRLIN                            
     C                     MOVELERR7      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
      *                                                           
     C           CUSSTA    IFEQ *BLANKS                           
     C                     MOVE 'N'       RECOK                   
     C                     CLEARERRLIN                            
     C                     MOVELERR8      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
      *                                                           
     C           CUSZIP    IFEQ *ZERO                             
     C                     MOVE 'N'       RECOK                   
     C                     CLEARERRLIN                            
     C                     MOVELERR6      ERRLIN                  
     C                     MOVE *ON       *IN90                   
     C                     ENDIF                                  
      *                                                           
     C                     ENDSR                                       
      *----------------------------------------------------------------

 fairyboy 回复于:2004-07-30 16:41:39
你在DSPF的第3行加一句   INDARA

 人世间 回复于:2004-07-30 16:41:51
还是不行这样吧,这是http://www.texas400.com上的样例程序。


http://www.texas400.com/BSacdrpgpgm.html

 fairyboy 回复于:2004-07-30 16:47:29
我问一下,你的DSPF文件建立成功了没?

 人世间 回复于:2004-07-30 16:58:43
你有MSN吗?

我的是CASEERP@HOTMIAL.COM

比较好勾通

 fairyboy 回复于:2004-07-30 18:55:21
HUIGONG9@HOMAIL.COM

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有