ABAP F4使用总结!!
PARAMETERS: p_werks LIKE t001l-werks ,
p_lgort LIKE t001l-lgort .
SELECTION-SCREEN SKIP.
PARAMETERS: p_kunnr LIKE kna1-kunnr .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lgort.
PERFORM get_lgort CHANGING p_lgort.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_kunnr.
PERFORM kunnr_f4help CHANGING p_kunnr.
*&---------------------------------------------------------------------*
*& Form get_event_for_user
*&---------------------------------------------------------------------*
FORM get_lgort CHANGING l_lgort LIKE p_lgort.
DATA: wa_shlp TYPE shlp_descr,
wa_selopt TYPE ddshselopt,
it_return_values TYPE STANDARD TABLE OF ddshretval,
wa_return_values TYPE ddshretval,
it_dynpfields TYPE STANDARD TABLE OF dynpread,
wa_dynpfields TYPE dynpread.
wa_dynpfields-fieldname = 'P_WERKS'.
APPEND wa_dynpfields TO it_dynpfields.
**取屏幕字段的已有值
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = it_dynpfields.
**根据表名和字段名确定使用哪个搜索帮助
CALL FUNCTION 'F4IF_DETERMINE_SEARCHHELP'
EXPORTING
tabname = 'T001L'
fieldname = 'LGORT'
IMPORTING
shlp = wa_shlp.
READ TABLE it_dynpfields WITH KEY fieldname = 'P_WERKS' INTO wa_dynpfields.
IF NOT wa_dynpfields-fieldvalue IS INITIAL.
wa_selopt-sign = 'I'.
wa_selopt-option = 'CP'.
wa_selopt-low = wa_dynpfields-fieldvalue.
wa_selopt-shlpfield = 'WERKS'.
wa_selopt-shlpname = wa_shlp-shlpname.
APPEND wa_selopt TO wa_shlp-selopt.
ENDIF.
**根据条件打开指定的搜索帮助
CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
EXPORTING
shlp = wa_shlp
TABLES
return_values = it_return_values.
READ TABLE it_return_values WITH KEY fieldname = 'LGORT' INTO wa_return_values.
IF sy-subrc IS INITIAL.
l_lgort = wa_return_values-fieldval.
READ TABLE it_return_values WITH KEY fieldname = 'WERKS' INTO wa_return_values.
IF sy-subrc IS INITIAL AND wa_return_values-fieldval NE wa_dynpfields-fieldvalue.
REFRESH it_dynpfields.
wa_dynpfields-fieldvalue = wa_return_values-fieldval.
APPEND wa_dynpfields TO it_dynpfields.
**更新屏幕字段
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = it_dynpfields.
ENDIF.
ENDIF.
ENDFORM. " get_event_for_user
*&---------------------------------------------------------------------*
*& Form kunnr_f4help
*&---------------------------------------------------------------------*
FORM kunnr_f4help CHANGING l_kunnr .
DATA: wa_shlp TYPE shlp_descr,
wa_shlp_desct TYPE shlp_desct ,
fcode LIKE sy-ucomm ,
wa_interface LIKE LINE OF wa_shlp-interface,
wa_fielddescr LIKE LINE OF wa_shlp-fielddescr,
wa_fieldprop LIKE LINE OF wa_shlp-fieldprop,
wa_selopt LIKE LINE OF wa_shlp-selopt,
wa_retval TYPE ddshretval,
it_retval TYPE STANDARD TABLE OF ddshretval.
DATA: subrc LIKE sy-subrc .
**根据搜索帮助取得wa_shlp
CALL FUNCTION 'F4IF_GET_SHLP_DESCR' EXPORTING
shlpname = 'VMVAA' "search help VMVAA
shlptype = 'SH'
IMPORTING
shlp = wa_shlp.
*定义 VKORG 为只读字段
LOOP AT wa_shlp-interface INTO wa_interface WHERE shlpfield = 'VKORG'.
wa_interface-value = '3020'.
wa_interface-dispfield = 'X'.
MODIFY wa_shlp-interface FROM wa_interface INDEX syst-tabix.
ENDLOOP.
LOOP AT wa_shlp-fieldprop INTO wa_fieldprop WHERE fieldname = 'VKORG'.
wa_fieldprop-shlpinput = 'X'.
wa_fieldprop-shlpseldis = 'X'.
MODIFY wa_shlp-fieldprop FROM wa_fieldprop INDEX syst-tabix.
ENDLOOP.
*定义输出字段
READ TABLE wa_shlp-interface INTO wa_interface WITH KEY shlpfield = 'VBELN'.
IF sy-subrc = 0.
wa_interface-valfield = 'X'.
* l_shlp_interface-value = tree_id.
MODIFY wa_shlp-interface FROM wa_interface INDEX sy-tabix.
ELSE.
MESSAGE e017(bmen) RAISING internal_error.
ENDIF.
* 选择界面初始值
wa_selopt-shlpname = wa_shlp-shlpname.
wa_selopt-shlpfield = 'KUNNR'.
wa_selopt-sign = 'I'.
wa_selopt-option = 'EQ'.
wa_selopt-low = '4000'.
APPEND wa_selopt TO wa_shlp-selopt.
APPEND wa_shlp TO wa_shlp_desct.
APPEND wa_shlp TO wa_shlp_desct.
CLEAR wa_shlp.
CALL FUNCTION 'F4IF_CHOOSE_SEARCHHELP'
EXPORTING
shlp_tab = wa_shlp_desct
IMPORTING
shlp = wa_shlp
fcode = fcode.
CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
EXPORTING
shlp = wa_shlp
IMPORTING
rc = subrc
TABLES
return_values = it_retval.
LOOP AT it_retval INTO wa_retval.
p_kunnr = wa_retval-fieldval.
ENDLOOP.
ENDFORM. " CALL_F4HELP
ABAP F4使用总结!!的更多相关文章
- ABAP f4帮助输入多个值
*---------------------------------------------------------------------- * INITIALIZATION *---------- ...
- 【ABAP系列】SAP ABAP ALV里日期类型的F4帮助
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP ALV里日期类 ...
- 【ABAP系列】SAP F4搜索帮助的高级版
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP F4搜索帮助的高级版 ...
- [SAP ABAP开发技术总结]搜索帮助Search Help (F4)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ABAP ALV F4帮助
ALV F4帮助, 选值保存到ALV. TYPE-POOLS:slis. CLASS lcl_event_receiver DEFINITION DEFERRED. DATA: gt_fcat TYP ...
- ABAP 实现内表自定义的F4功能
“实现多列内容的F4功能 REPORT Z_TAB_TEST. TYPES: shlp_descr TYPE shlp_descr . DATA: BEGIN OF itab OCCURS 0 ...
- ABAP开发顾问必备:SAP ABAP开发技术总结
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ABAP常用函数集锦
函数名 描述 SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织VI ...
- [SAP ABAP开发技术总结]消息处理Messages
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- DCloud-HBulder:杂项
ylbtech-DCloud-HBulder:杂项 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 7.返回顶部 8.返回顶部 ...
- javascript——对象的概念——函数 3 (使用技巧)
1.回调函数:将函数A传给函数B,由函数B来执行A,则称A为回调函数. 例1: 例2 function addone(a){;}; //定义一个回调函数 function mulitiply(a,b, ...
- StackMapTable format error
环境:Oracle Java 7 , Mac OSX 报错如上图所示,主要是 Caused by: java.lang.ClassFormatError: StackMapTable format e ...
- 用position: sticky 实现粘性元素区域悬浮效果(转)
用position: sticky 实现粘性元素区域悬浮效果 原创 2017年08月02日 20:04:13 161 在一些很长的表格中,常常会使用表头悬浮的设计以方便阅读,即在表格离开窗口之前,表头 ...
- Linux 下安装redis
记录一下linux下的安装步骤,还是比较复杂的 1. 下载redis-2.8.19.tar.gz: ftp传到linux01上: 解压: tar –zxvf redis-2.8.19.tar.gz 2 ...
- HDU 6395(2018多校第7场1010)Sequence
不久前做过POJ3070,所以知道这题要用矩阵快速幂优化,但是这个题的递推公式中有一项⌊p/n⌋,场上就不会了... 下来才知道要用分块矩阵快速幂,因为⌊p/n⌋最多有2√p块,可以对每一块使用快速幂 ...
- (转)typedef和#define的用法与区别
typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...
- g2o20160430下的csparse文件夹内的CMakeLists.txt
1. g2o20160430下的csparse文件夹内的CMakeLists.txt cmake_minimum_required(VERSION 2.6) PROJECT(csparse) SET( ...
- Linux expect命令
一.简介 通过Shell可以实现简单的控制流功能,但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能.而就使用来实现这种功能的工具.Ex ...
- little case1
这句话有问题: frame.setContentPane().add(button); The method setContentPane(Container) in the type JFrame ...