F10功能无法将控制权返还给程序

时间:2017-04-25 09:09:51

标签: ibm-midrange rpgle

我有一个显示文件,其中我添加了两个额外的字段,按f10 - 折叠/丢弃。当用户折叠记录时,页脚显示应更改为f10 =展开。展开展示时,显示屏应更改为f10 =折叠。

         A***************************************************************
     A*  LIST OF LOADS WITH BOL SUBFILE CONTROL                      
     A***************************************************************
     A          R RLG610C1                  SFLCTL(RLG610S1)         
     A                                      SFLSIZ(0011)             
TPA01A                                      SFLPAG(0005)             
     A                                      OVERLAY                  
     A N71                                  SFLDSP                   
     A N71                                  SFLDSPCTL                
     A  71                                  SFLCLR                   
     A  91                                  SFLEND(*MORE)            
TPA01A N45                                  SFLDROP(CF10)            
TPA01A  45                                  SFLFOLD(CF10)            
TPA01A                                      SFLMODE(&MODE)           
     A            RRN            4S 0H      SFLRCDNBR                

页脚字段设置如下:

TPA01A  45                             23 25'F10=Fold'    
TPA01A                                      COLOR(BLU)    
TPA01A N45                             23 25'F10=Unfold'  
TPA01A                                      COLOR(BLU)    

问题是当用户按下f10时,显示会按预期更改。但是要改变页脚,需要输入命中。

根据* IN45指标字段值,下面的代码控制折叠/展开选项的显示。但程序的控制只有在你按下回车时到达这里,我希望控件只需按下f10即可返回程序

If Mode = '1';                
            *IN45 = '0';                
          ElseIf Mode = '0';            
            *IN45 = '1';                
          EndIf;    

基本上,现在我想知道SFLFOLD和SFLDROP是否将控制权返回给该计划。

拼命地帮忙!

@charles,

我已经尝试过你提到的查尔斯。但它只是工作

     A          R RLG610C1                  SFLCTL(RLG610S1)      
     A                                      CF10(10 'FOLD/UNFOLD')
     A                                      SFLSIZ(0011)          
TPA01A                                      SFLPAG(0005)          
     A                                      OVERLAY               
     A N71                                  SFLDSP                
     A N71                                  SFLDSPCTL             
     A  71                                  SFLCLR                
     A  91                                  SFLEND(*MORE)         
TPA01A N45                                  SFLDROP(CF10)         
TPA01A  45                                  SFLFOLD(CF10)         

按下F10,折叠/展开效果很好。但是控件根本没有进入程序。我甚至试过把它放在文件级别。即使在那里也没有用。任何建议都是最受欢迎的。

1 个答案:

答案 0 :(得分:0)

5250设备是(相对)智能设备,而不是哑终端。

SFLFOLD和SFLDROP在设备上处理,因此当按下F10时,没有控制权不会返回到您的程序。

让页脚包含

F10=Fold/Unfold

如果您确实想要将控制权返回给您的程序,请将F10配置为子文件控制记录中的常规CF / CA密钥。并在SFLFOLD / SFLDROP关键字中使用虚拟Fxx密钥...

     A                                      CF10(10 'FOLD/UNFOLD')         
TPA01A N45                                  SFLDROP(CF24)         
TPA01A  45                                  SFLFOLD(CF24) 

因此,控件将返回到您的程序。您必须检查F10是否被按下而不是检查模式,因为系统没有启动开关。