subfile中readc的疑问

发布于 2022-09-06 10:53:11 字数 255 浏览 10 评论 8

本帖最后由 rise720 于 2010-09-28 13:33 编辑

设计了一个subfile,其中,只有option字段是可输入的. 希望是在subfile中通过用'1'选择某条记录,然后进行操作

我原意是用readc循环查找subfile中修改过的记录,即标记'1'的记录

但发现所有记录,包括没做任何操作的记录,也被readc读了出来.请问下为什么? 需要注意什么地方么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

佞臣 2022-09-11 09:21:57

不会看源码,只会在SDU上弄

望笑 2022-09-11 06:52:52

回复 6# NINERI

确实如此,谢谢回复!

在reference中查了下相关信息,与大家分享下

Subfile operations with SFLNXTCHG
If the program detects typing errors in the changed records, it can send update operations (UPDATE in RPG IV, REWRITE SUBFILE in COBOL) to the subfile records in error, setting indicators so that SFLNXTCHG is in effect during the update operations. These update operations are sent to the subfile record format.
After all the records in error have been updated, the program sends an input/output operation to the subfile-control record format to display the subfile again. With the subfile displayed again, the workstation user types the data again and presses the Enter key. If the data is correct, the program does not display the subfile again. The records in error (and any other records changed by the workstation user) are returned to the program on the next get-next-changed operation. This is because SFLNXTCHG caused the subfile records to be considered changed even though the workstation user did not change them. This allows the program to prohibit the workstation user from ignoring program-detected typing errors in subfile records.

Subfile operations without SFLNXTCHG
If SFLNXTCHG is not specified, or is specified but not selected on the update operations to the subfile records, then the workstation user can press the Enter key instead of correcting the program-detected errors. The program then reads no records because the get-next-changed operations find no changed records the second time the Enter key is pressed. Option indicators are valid for this keyword.

山色无中 2022-09-11 05:39:00

SFLNXTCHG 加一個指示器 如66

SETON                66
UPDATSFL01
SETOF                66

梦开始←不甜 2022-09-11 01:40:41

DDS 中SFLNXTCHG  keyword放到S1OPT      下面你试试,

请教你源代码怎样复制贴的这样漂亮的?
tomroom 发表于 2010-09-28 13:58

试过了,不行. SFLNXTCHG是RECORD LEVEL的keyword吧?

要复制代码的话,只要点编辑帖子里的工具栏 '代码' 一栏即可

江挽川 2022-09-11 00:13:43

DDS 中SFLNXTCHG  keyword放到S1OPT      下面你试试,

请教你源代码怎样复制贴的这样漂亮的?

枕头说它不想醒 2022-09-08 03:21:19

本帖最后由 rise720 于 2010-09-28 13:50 编辑

  1. A          R SFL01                     SFL         
  2. A                                      SFLNXTCHG   
  3. A            S1OPT          1A  B  7  2            
  4. A  39                                  DSPATR(RI)  
  5. A  39                                  DSPATR(PC)  
  6. A            S1CSC1         4A  O  7 10            
  7. A            S1CSC2         2A  O  7 15            
  8. A            S1CSC3         2A  O  7 18            

复制代码

  1. C                     Z-ADD0         W1RRN               
  2. C                     READCSFL01                    80   
  3. C           *IN80     DOWEQ*OFF                           
  4. C           S1OPT     IFNE '1'                           
  5. C                     SETON                     39      
  6. C                     UPDATSFL01                        
  7. C           *IN99     IFEQ *OFF                          
  8. C                     SETON                     99      
  9. C                     MOVELMSG,2     D9MSG     P         
  10. C                     ENDIF                              
  11. C                     LEAVE                              
  12. C                     ELSE                              
  13. C           W1RRN     IFEQ 0                             
  14. C                     Z-ADDRRN1      W1RRN               
  15. C                     ELSE                              
  16. C                     SETON                     39         
  17. C                     UPDATSFL01                           
  18. C           *IN99     IFEQ *OFF                           
  19. C                     SETON                     99         
  20. C                     MOVELMSG,3     D9MSG     P           
  21. C                     ENDIF                                
  22. C                     LEAVE                                
  23. C                     ENDIF                                
  24. C                     ENDIF                                
  25. C                     READCSFL01                    80     
  26. C                     ENDDO                                

复制代码麻烦了!

梦开始←不甜 2022-09-06 23:03:03

能不能把那段代码贴上来,这么说不是很明确

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文