Ibm midrange F10功能不将控制返回到程序
我有一个显示文件,我在其中添加了两个额外的字段,这两个字段在按f10时出现-fold/drop。当用户折叠记录时,页脚显示应更改为f10=展开。当显示屏展开时,显示屏应更改为f10=折叠Ibm midrange F10功能不将控制返回到程序,ibm-midrange,rpgle,Ibm Midrange,Rpgle,我有一个显示文件,我在其中添加了两个额外的字段,这两个字段在按f10时出现-fold/drop。当用户折叠记录时,页脚显示应更改为f10=展开。当显示屏展开时,显示屏应更改为f10=折叠 A*************************************************************** A* LIST OF LOADS WITH BOL SUBFILE CONTROL A******
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时,显示会按预期变化。但要更改页脚,需要按enter键
下面是一段代码,它根据*IN45指示器字段值控制折叠/展开选项的显示。但只有当你按下回车键时,程序的控制才会到达这里,我希望只要按f10键,控制就会返回到程序
If Mode = '1';
*IN45 = '0';
ElseIf Mode = '0';
*IN45 = '1';
EndIf;
基本上,现在我想知道SFLFOLD和SFLDROP是否将控制权返回给程序
绝望地求救
@查尔斯
我已经试过你提到的查尔斯了。但它就是不起作用
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键时,折叠/展开工作正常。但是控件根本不进入程序。我甚至试着把它放在文件级。即使在那里,它也不起作用。欢迎任何建议。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是否被按下,而不是检查模式,因为系统没有启动开关 嗨,查尔斯,我甚至试过这个。。但是控件仍然没有返回到程序中。您是将它放在子文件记录中,还是放在子文件控制记录中?试试另一个。老实说,我不确定它是否会起作用……但我似乎记得看到页脚发生了变化……嗨,查尔斯,我试着把它放在子文件控制记录和显示文件级别。在子文件记录级别放置导致编译失败问题是,为什么在子文件控制格式级别或显示文件级别定义CF10不起作用?是因为它是在SFLFOLD中定义的吗?当编译失败时,您会得到什么消息?