我正在开发一个 SAP ABAP 程序,其中有一个带有两个自定义按钮的 ALV 报告。当用户单击其中一个按钮时,会出现一个弹出窗口,其中包含两个字段,用户需要在其中输入数据。
用户单击“确定”提交后,我需要检索输入到这些字段中的数据以进行进一步处理。
以下是该场景的摘要:
这些字段是在弹出屏幕布局(屏幕 100 和屏幕 200)中定义的,但我不知道如何在用户提交弹出窗口后检索用户输入的值。
任何人都可以帮助我了解如何在用户提交后从弹出窗口中的这些输入字段中检索值吗?
您需要对屏幕字段使用全局变量。例如,您可以在屏幕 PAU 的代码中访问 PRPSS-POSID。
另一方面,您可以使用现有的FM来请求数据。
FORM popup_get_values CHANGING cv_posid TYPE prpss-posid
cv_quantity TYPE prpss-usr04.
DATA: lt_field TYPE TABLE OF sval,
ls_field TYPE sval.
ls_field-tabname = 'PRPSS'.
ls_field-fieldname = 'POSID'.
APPEND ls_field TO lt_field.
CLEAR ls_field.
ls_field-tabname = 'PRPSS'.
ls_field-fieldname = 'USR04'.
APPEND ls_field TO lt_field.
"Call the popup function module
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
popup_title = 'Enter POS ID and Quantity'
TABLES
fields = lt_field
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF sy-subrc = 0.
READ TABLE lt_field INTO ls_field WITH KEY fieldname = 'POSID'.
IF sy-subrc = 0.
cv_posid = ls_field-value.
ENDIF.
READ TABLE lt_field INTO ls_field WITH KEY fieldname = 'QUANTITY'.
IF sy-subrc = 0.
cv_quantity = ls_field-value.
ENDIF.
ELSE.
MESSAGE 'Popup canceled' TYPE 'I'.
ENDIF.
ENDFORM.