免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7011 | 回复: 8
打印 上一主题 下一主题

DSPF中修改数据,与之关联的文件同步的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-28 20:08 |只看该作者 |倒序浏览
FPGTstDsPL1UF A E           K DISK                    
FPGTstDsP@ CF   E             WORKSTN SFile(@@SFL:RRN)
                                                      
*                                                   
DRRN              S              6S 0 INZ(0)         
*                                                   
C                   EXSR      #MAIN                  
C                   EVAL      *INLR='1'               
C                   RETURN                           
*                                                   
*                                                   
*                                                   
CSR   #MAIN         BEGSR                             
C                   WRITE     FOOT                    
C                   EXSR      #ClrSfl                 
C                   EXSR      #LodSfl                 
C                   EXSR      #LodSfl                              
C                   Dow       *IN03      <> '1'                    
C                   Exfmt     @@SFLC                              
C                   EXSR      #PrcSfl                              
C                   EndDo                                          
CSR               ENDSR                                          
*                                                                                                      
*                                                                 
*                                                                 
CSR   #ClrSfl       BEGSR                                          
C                   SETON                                        80
C                   WRITE     @@SFLC                              
C                   SETOFF                                       80
C                   Z-Add     0             wNum              6 0  
CSR                 ENDSR                                          

CSR   #LodSfl BEGSR                                             
C     *Loval     SetLL     FDSPR                                    
C                   Read      FDSPR                                  30
C                   Dow       *IN30='0'                                
*                                                                     
C                   Add       1             wNum                       
C                   Eval      RRN         = wNum                       
C                   Eval      @@SFPG      = wNum                       
C                   Write     @@SFL                                    
*                                                                     
C                   Read      FDSPR                                  30
C                   EndDo                                             
*                                                                     
CSR               EndSr        


  *                        
  *                        
CSR   #PrcSfl       BegSr  
* 修改数据                                         
C                   When      Opt         = 2      
C                   Reset                   Opt     
C                   Eval      @@SFPG      = RRN     
C                   Exfmt     @@WIDEDT              
C                   If        *IN12       = '0'     
C                   Update    @@SFL                 
C                   Exfmt     @@WIDSUC              
*                                                  
C     DSPNO         Chain     FDSPR                 
C                   If        %Found()              
C                   Update    FDSPR                 
C                   EndIf                           
C                   Else                           
C                   Update    @@SFL                 
C                   EndIf                  
*                                                                     
CSR               EndSr        
        

论坛徽章:
0
2 [报告]
发表于 2012-08-28 20:08 |只看该作者
请大家帮忙看下,我想实现在屏幕文件中修改记录,同时也修改与之关联的PF中对应的记录,屏幕文件中记录修改后正确显示,但是PF修改后,正常运行,FD  PF时该记录却仍是修改前的值,Debug进去,到这一步也正常通过

论坛徽章:
0
3 [报告]
发表于 2012-08-28 20:31 |只看该作者
没太懂,修改子例程#PrcSfl是干嘛的?

论坛徽章:
0
4 [报告]
发表于 2012-08-28 21:46 |只看该作者
#PrcSfl是用来修改记录的呀

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-05 06:20:00
5 [报告]
发表于 2012-08-28 23:52 |只看该作者
C     DSPNO         Chain     FDSPR                 
C                   If        %Found()              
C                   Update    FDSPR                 
C                   EndIf

这里没对PF 的FD进行修改值呀,这只是个空的UPDATE

论坛徽章:
0
6 [报告]
发表于 2012-08-29 08:35 |只看该作者
修改了吧,因为@@WIDEDT 这个窗口里的字段是引用PF字段定义的,连名字都没换,
A          R @@WIDEDT                                                  
A                                                   CF12(12 'Cancel')               
A                                                    WINDOW(5 15 11 50)              
A            DSPNO     R        O  2 10  REFFLD(FDSPR/DSPNO   MYLIB/PGTSTDSPP)
A            DSPNAM    R        B  3 10  REFFLD(FDSPR/DSPNAM MYLIB/PGTSTDSPP)
...............................

论坛徽章:
0
7 [报告]
发表于 2012-09-03 13:43 |只看该作者
没有修改。
因为CHAIN了一下

论坛徽章:
0
8 [报告]
发表于 2012-09-03 13:46 |只看该作者
一般来说,画面和DB里的字段名应该是不一样的。
如果你非要这么偷懒,可以先读一下画面,再更新。

论坛徽章:
0
9 [报告]
发表于 2012-09-03 21:11 |只看该作者
嗯,谢谢楼上!修改了,把字段名换了就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP