F10 函数不将控制返回给程序

F10 function not returning control back to program

我有一个显示文件,我在其中添加了两个额外的字段,这些字段在按 f10 时出现 - fold/drop。当用户折叠记录时,页脚显示应更改为 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 指标字段值控制 fold/unfold 选项的显示。但是程序的控制只有在你按下回车时才会到达这里,我希望只需按 f10

就可以将控制 return 交给程序
If Mode = '1';                
            *IN45 = '0';                
          ElseIf Mode = '0';            
            *IN45 = '1';                
          EndIf;    

基本上,现在我想知道 SFLFOLD 和 SFLDROP return 是否控制了程序。

急求帮助!

@查尔斯,

我已经尝试过你提到的 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,folding/unfolding 完美运行。但是控件根本不去程序。我什至试过把它放在文件级别。即使在那里它也不起作用。欢迎任何建议。

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

SFLFOLD 和 SFLDROP 是在设备上处理的,因此当按下 F10 时,没有控件不会return进入您的程序。

只要让页脚包含

F10=Fold/Unfold

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

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

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