DATA: lt_value TYPE TABLE OF sval,
lv_returncode TYPE char2.
lt_value = VALUE #( ( tabname = 'BKPF' fieldname = 'BUDAT' field_obl = 'X' value = sy-datum )
( tabname = 'BKPF' fieldname = 'BELNR' field_obl = 'X' )
( tabname = 'BKPF' fieldname = 'GJAHR' field_obl = 'X' value = sy-datum+0(4) ) ).
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
popup_title = '请输入数据'
IMPORTING
returncode = lv_returncode
TABLES
fields = lt_value
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF sy-subrc = 0 AND lv_returncode <> 'A'."A:取消
TRY.
CATCH cx_sy_itab_line_not_found.
ENDTRY.
ENDIF.
可看不可输入,可看值作为存储地点(QALS-LAGORTCHRG)搜索帮助的条件
field_attr = '02'
field_attr = '05' 值不在域SPO_FATTER
中,但跟代码可以查到
DATA: lt_value TYPE TABLE OF sval,
lv_returncode TYPE c.
lt_value = VALUE #( ( tabname = 'QALS' fieldname = 'LAGORTCHRG' field_obl = 'X' value = '' ) ).
lt_value = VALUE #( BASE lt_value ( tabname = 'QALS' fieldname = 'MATNR' value = '321456987' field_attr = '05' ) ).
lt_value = VALUE #( BASE lt_value ( tabname = 'QALS' fieldname = 'WERK' value = '1011' field_attr = '05' ) ).
lt_value = VALUE #( BASE lt_value ( tabname = 'QALS' fieldname = 'CHARG' value = '4654244' field_attr = '05' ) ).
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
popup_title = '请输入'
IMPORTING
returncode = lv_returncode
TABLES
fields = lt_value
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF sy-subrc <> 0.
RETURN.
ENDIF.
POPUP里面实现搜索帮助的两种方式
-
如果参考字段的搜索帮助中defaulvalue存在parameterID,则是直接给parameterID
-
不满足情况1的时候,将搜索帮助的字段的值作为不可编辑的值输出在屏幕上,如上代码如下图。跟踪代码发现如果有值则会将值写道搜索帮助里
金额字段不给编辑,缺乏单位字段
可以将字段写入到内表中,但是属性设置为不显示,即可。
lt_value = VALUE #( ( tabname = 'ACDOCA' fieldname = 'HSL' field_obl = 'X' value = '' ) ).
lt_value = VALUE #( BASE lt_value ( tabname = 'ACDOCA' fieldname = 'WERAS' field_attr = '04' ) ).