FM实现F4帮助系列二:联动的搜索
2014-01-22 09:24
323 查看
函数:
DYNP_VALUES_READ(Read screen field values before PAI field
transport)
F4IF_INT_TABLE_VALUE_REQUEST
效果图:
误区:
P_CONNID帮助中直接如下:
SELECT
……
WHERE werks =
p_werks.
如果用户填写p_werks 未回车而直接点p_matnr的帮助,p_werks此时还为空.
本例子代码:
REPORT zlm_test_043.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE
text-001.
PARAMETERS: p_werks TYPE werks_d,
p_matnr
TYPE matnr.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr.
PERFORM frm_f4.
*&-------------------------------------------------------------------
*&搜索帮助
*&-------------------------------------------------------------------
FORM frm_f4.
TYPES: BEGIN OF values,
matnr TYPE matnr,
maktx TYPE maktx,
END OF values.
DATA: progname
TYPE
sy-repid,
dynnum
TYPE
sy-dynnr,
dynpro_values
TYPE TABLE OF dynpread,
field_value
LIKE LINE OF
dynpro_values,
values_tab
TYPE TABLE OF values.
progname = sy-repid.
dynnum = sy-dynnr.
CLEAR: field_value, dynpro_values.
"指定需要取值的屏幕字段
field_value-fieldname = 'P_WERKS'.
"
APPEND field_value TO dynpro_values.
"获取屏幕 P_WERKS 字段的值
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname
=
progname
dynumb
=
dynnum
translate_to_upper = 'X'
TABLES
dynpfields
= dynpro_values.
"根据屏幕输入值进行进一步搜索
READ TABLE dynpro_values INDEX 1 INTO
field_value.
SELECT makt~matnr
makt~maktx
FROM
makt
INNER JOIN marc ON
marc~matnr = makt~matnr
INTO
CORRESPONDING FIELDS OF TABLE values_tab
WHERE werks =
field_value-fieldvalue.
CALL FUNCTION
'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'MATNR'
"需要回传的字段
dynpprog = progname
dynpnr =
dynnum
dynprofield = 'MAKTX'
"需要显示的字段
window_title = '情选择物料 '
value_org = 'S'
TABLES
value_tab = values_tab.
ENDFORM.
"frm_f4
DYNP_VALUES_READ(Read screen field values before PAI field
transport)
F4IF_INT_TABLE_VALUE_REQUEST
效果图:
误区:
P_CONNID帮助中直接如下:
SELECT
……
WHERE werks =
p_werks.
如果用户填写p_werks 未回车而直接点p_matnr的帮助,p_werks此时还为空.
本例子代码:
REPORT zlm_test_043.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE
text-001.
PARAMETERS: p_werks TYPE werks_d,
p_matnr
TYPE matnr.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr.
PERFORM frm_f4.
*&-------------------------------------------------------------------
*&搜索帮助
*&-------------------------------------------------------------------
FORM frm_f4.
TYPES: BEGIN OF values,
matnr TYPE matnr,
maktx TYPE maktx,
END OF values.
DATA: progname
TYPE
sy-repid,
dynnum
TYPE
sy-dynnr,
dynpro_values
TYPE TABLE OF dynpread,
field_value
LIKE LINE OF
dynpro_values,
values_tab
TYPE TABLE OF values.
progname = sy-repid.
dynnum = sy-dynnr.
CLEAR: field_value, dynpro_values.
"指定需要取值的屏幕字段
field_value-fieldname = 'P_WERKS'.
"
APPEND field_value TO dynpro_values.
"获取屏幕 P_WERKS 字段的值
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname
=
progname
dynumb
=
dynnum
translate_to_upper = 'X'
TABLES
dynpfields
= dynpro_values.
"根据屏幕输入值进行进一步搜索
READ TABLE dynpro_values INDEX 1 INTO
field_value.
SELECT makt~matnr
makt~maktx
FROM
makt
INNER JOIN marc ON
marc~matnr = makt~matnr
INTO
CORRESPONDING FIELDS OF TABLE values_tab
WHERE werks =
field_value-fieldvalue.
CALL FUNCTION
'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'MATNR'
"需要回传的字段
dynpprog = progname
dynpnr =
dynnum
dynprofield = 'MAKTX'
"需要显示的字段
window_title = '情选择物料 '
value_org = 'S'
TABLES
value_tab = values_tab.
ENDFORM.
"frm_f4
相关文章推荐
- FM实现F4帮助系列二:联动的搜索
- FM实现F4帮助系列一:常规实现
- FM实现F4帮助系列四:弹出框多筛选…
- FM实现F4帮助系列三:弹出框多筛选…
- FM实现F4帮助系列一:常规实现
- FM实现F4帮助系列四:弹出框多筛选…
- FM实现F4帮助系列三:弹出框多筛选…
- 使用matchcode object + 搜索帮助 实现F4
- ALV通过F4事件,实现自定义搜索帮助F4
- 关于F4搜索帮助返回多列值的实现方法
- (转)淘淘商城系列——商品搜索功能Dao实现
- Get the F4 help of a field based on the value of another field in the selction screen(联动的搜索帮助)
- 王甲佳全息营销系列01-期望对试图通过网络实现或者兑现更多价值的人士有帮助
- (转)淘淘商城系列——商品搜索功能Service实现
- Android 快速开发系列 ORMLite 框架最佳实践之实现历史记录搜索
- 【玩转SQLite系列】(六)SQLite数据库应用案例实现历史搜索记录
- 淘淘商城系列——商品搜索功能表现层实现
- (转)淘淘商城系列——商品搜索功能表现层实现
- F4搜索帮助
- 【jQuery系列之插件】jQuery插件---exselect实现联动