2024年4月18日发(作者:)

业务场景:

自定义报表开发,需要用到自定义表作为参数录入的搜索帮助栏,如下图所示:

实现步骤:

1、 SE11创建自定义表ZT001(公司、跟踪号、项目名称等)

2、 SE38 部分代码段

**-----1、屏幕录入参数------------------------------------**

SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE T1.

PARAMETER:P_BUKRS TYPE T001-BUKRS OBLIGATORY.

PARAMETER:p_bednr TYPE zt001-bednr obligatory .

SELECT-OPTIONS: P_EBELN FOR BSAK-EBELN,

"采购订单

P_BUDAT FOR BSAK-BUDAT.

"过账日期(发票校验、付款记账)

SELECTION-SCREEN END OF BLOCK BK1.

**------2、增加自定义搜索帮助栏,BEDNR 需求跟踪号,取值ZT001 ;-----**

DATA: it_return_tab TYPE TABLE OF ddshretval WITH HEADER LINE,

wa_return LIKE LINE OF it_return_tab.

DATA: BEGIN OF lt_zmat OCCURS 0,

bukrs like zt001-bukrs,

bednr LIKE zt001-bednr,

project_name TYPE zt001-project_name,

project_num TYPE zt001-project_num,

project_date LIKE zt001-project_date,

project_company LIKE zt001-project_company,

END OF lt_zmat.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bednr.

PERFORM frm_f4_zklxn.

FORM frm_f4_zklxn.

SELECT * FROM ztfi341

INTO CORRESPONDING FIELDS OF TABLE lt_zmat where delete_state <> '1' .”

此处为用户自定义过滤条件的结果集

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'BEDNR'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'BEDNR'

value_org = 'S'

"display = 'F'

callback_program = sy-cprog

TABLES

value_tab = lt_zmat

return_tab = it_return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

ENDFORM.

**----------------END-----------------------------------------**