在网上看到这样一个问题:获得选择屏幕上checkbox的值,如果值为x,则F4弹出保存文件前台窗口,若checkbox为空,则F4弹出打开文件前台窗口,但在ON VALUE-REQUEST的块中得不到最新的checkbox值,很显然这是屏幕流逻辑的问题,逻辑没有走到PAI,下面提供两种方法:1.在CHECKBOX 后面加USER COMMAND让它触发屏幕流逻辑;2.由于方法1要跑PAI就有可能带来需求上的不便,这时可在VALUE-REQUEST中使用FM:DYNP_VALUES_READ来动态获取选择屏幕上元素的值。指定屏幕号,和程序ID,指定需要获取的屏幕元素文本。
下面简单写了个例子,写这篇文章主要是引出DYNP_VALUES_READ 函数,在很多时候我们都可以用它;
&---------------------------------------------------------------------*
*& Report ZLC_DYNP_VALUES_READ
*&
*&---------------------------------------------------------------------*
REPORT ZLC_DYNP_VALUES_READ.
DATA: IT_DYNPREAD LIKE TABLE OF DYNPREAD,
WA_DYNPREAD LIKE DYNPREAD.
PARAMETERS C_BOX AS CHECKBOX .
SELECTION-SCREEN <

本文介绍如何在SAP ABAP中解决在VALUE-REQUEST中无法获取最新checkbox值的问题,提出通过调用函数模块DYNP_VALUES_READ动态获取屏幕元素值的方法,并提供示例代码,演示在checkbox值改变时,根据值决定调用打开或保存文件对话框的逻辑。


被折叠的 条评论
为什么被折叠?



