ABAP_自定义屏幕07—下拉列表框
ABAP_自定义屏幕07—下拉列表框
完成以下:页面中有下拉列表框,下拉框value=系统表SCRR的值
1、实现方法A-常用
1.1 在主程序定义字段
TYPES:BEGIN OF type_carrid,
carrid LIKE scarr-carrid,"航线代码
carrname LIKE scarr-carrname,"航向名称
END OF type_carrid.
DATA g_it_carrid TYPE STANDARD TABLE OF type_carrid.
DATA g_carrid(3) TYPE c.
1.2 在屏幕中建下拉列表框
1.3 POV设置字段绑定
1.4 绑定数据的实现方法
*-- 主程序中 ---
*----- 绑定数据的实现方法 ----*
module GET_LISTBOX input.
PERFORM sub_getdata. "调用数据查询方法
endmodule. " GET_LISTBOX INPUT
*----- 查询数据并绑定到目标字段 ----------*
FORM sub_getdata.
SELECT * INTO CORRESPONDING FIELDS OF TABLE g_it_carrid FROM scarr.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CARRID' "key值
dynpprog = sy-repid "程序名,sy-repid表示本程序
dynpnr = sy-dynnr "屏幕,y-dynnr表示当前屏幕
dynprofield = 'CARRNAME' "需要在下拉框显示的字段
value_org = 'S' "C表示cell,S表示structure
callback_program = sy-repid"
TABLES
value_tab = g_it_carrid "关联的内表
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
ENDFORM. "sub_getdata
1.5 运行效果
2、实现方法B-取巧
2.1 建屏幕,在主程序中定义表
TABLES:sdyn_conn.
2.2 绘制文本框
2.3 运行结果
以上配置后,不需其他设置,则能带出数据表sdyn_conn的数据
没有绑定字段和数据表的关联,却能展示数据表SCARR的数据,为何 ??
原因:字段(SDYN_CONN-CARRID)参考元素的域,value table=SCARR,详情如下
3、总结
3.1 文本框包括下拉列表框,只需更改下拉式=listbox(或listbox with key)
3.2 下拉式=listbox(或listbox with key)两种类型的区别是:选项文字描述是否会带key值
一般使用Listbox即可,如需变换,在客户端设置即能变换为Listbox with key的模式
3.3 开发过程中绑定的数据,都带有过滤条件,上面的方法B不适用,所以通常使用方法A
post SAP-Garson
原文链接:https://blog.csdn.net/f346348157/article/details/124614880文章来自于网络,如果侵犯了您的权益,请联系站长删除!