Chinaunix

标题: 2个以上PF文件合成一个多记录名的逻辑文件,对此文件的操作及性能 [打印本页]

作者: xiayu176    时间: 2006-11-24 22:35
标题: 2个以上PF文件合成一个多记录名的逻辑文件,对此文件的操作及性能
如题,想把两个以上的PF文件和成一个逻辑文件,然后对该文件操作,怎么操作?速度怎样?

建逻辑文件LF1 如下:


A       R    PFR1
A             FLD1A
A             FLD1B
A             FLD1C
A       K    FLD1A
A       K    FLD1B
A
A       R    PFR2
A             FLD2A
A             FLD2B
A             FLD2C
A       K    FLD2A
A       K    FLD2B

文件1和文件2的KEY值是相同的,假设PF1有3条记录,PF2 有5条记录,那么合并后的LF1有几条记录呢?而且该文件有2个记录名,该怎样操作呢?
如果该文件有2个以上的文件后操作速度怎样呢?
作者: xiayu176    时间: 2006-11-25 00:08
还有,因为有两个不同的记录名与不同的两套字段名,程序用时按第一个记录名下的字段名吧?
作者: Eagle_wolf    时间: 2006-11-26 11:10
好久以前试过,我用的方法是pfile里指定了多个文件,使用这个文件的时候要先rename
作者: leason    时间: 2006-11-26 13:33
照2楼的方法做就可以了,如果是由两个PF合成一个LF,那么这两个PF要用到的栏位,全部重新定义一个名字,RPG中每次使用这个LF的时候,就直接会采用新定义的栏位名字了,如下原理一样:

A          R DDF452R                                   
A                                            PFILE(ZDF452)   
A            N45201                    RENAME(F45201)  
A            N45202                    RENAME(F45202)  
A            N45203                    RENAME(F45203)  
A            N45204                    RENAME(F45204)  
A            N45205                    RENAME(F45205)  
A            N45206                    RENAME(F45206)  
A            N45207                    RENAME(F45207)  
A            N45208                    RENAME(F4520  
A            N45209                    RENAME(F45209)  
A            N45210                    RENAME(F45210)  
A            N45211                    RENAME(F45211)
作者: shanda928161    时间: 2006-11-26 18:58
关于操作,读取的时候不可以写它的纪录名,要写文件名,更新的时候要更新纪录名,要用指示器标明的,好像
作者: pantierui    时间: 2006-11-27 08:28
PF

  1. A          R U1R01                     PFILE(POTU1)     
  2. A*  《キー》                                            
  3. A          K U1SDNO                                    
  4. A*  《選択》                                            
  5. A          S U1JTX                     COMP(EQ ' ')     
  6. A          R JKR01                     PFILE(SDTJK)     
  7. A*  《キー》                                            
  8. A          K JKSKNO                                    
  9. A*  《選択》                                          
  10. A          S JKJTX                     COMP(EQ ' ')   
复制代码


RPG

  1. FPOTU1J01IF  E           K        DISK
  2. IU1R01      78      
  3. IJKR01       79      
  4. C           *LOVAL    SETLLPOTU1J01                           
  5. C                     SETOF                     7879         
  6. C                     READ POTU1J01                 74        
  7. C           *IN74     DOWEQ*OFF                              
  8. C           *IN78     IFEQ *ON  
  9. C                     ..
  10. C                     ..
  11. C                     ENDIF   
  12. C           *IN79     IFEQ *ON     
  13. C                     ..
  14. C                     ..
  15. C                     ENDIF   
  16. C                     READ POTU1J01                 74   
  17. C                     ENDDO                              
复制代码

作者: xiayu176    时间: 2006-12-02 21:26
我知道是那样读的,但请教楼上的,如果三个PFILE有不同字段名时读到后的字段名应该是怎样取值?RPG程序中都只用U1R01中的字段RFLD吗? 如下所示:
A          R U1R01                     PFILE(POTU1)     
A*  《キー》                                            
A             RFLD
A          K U1SDNO                                    
A*  《選択》                                            
A          S U1JTX                     COMP(EQ ' ')   
A            JFLD  
A          R JKR01                     PFILE(SDTJK)     
A*  《キー》                                            
A          K JKSKNO                                    
A             SFLD
A*  《選択》                                          
A          S JKJTX                     COMP(EQ ' ')




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