F4IF_FIELD_VALUE_REQUEST 和 F4IF_INT_TABLE_VALUE_REQUEST的不同

F4IF_FIELD_VALUE_REQUEST主要功能是将表里的字段对应的search help引入到屏幕上来,从而打开对话框,当然也可以任意指定某个search help。

F4IF_INT_TABLE_VALUE_REQUEST支持字定义内表,但是不能通过指定search help的方式打开对话框。

1.F4IF_FIELD_VALUE_REQUEST的应用实例

TYPES: BEGIN OF type_carrid,

         carrid TYPE spfli-carrid,

         connid type spfli-connid,

         carrname TYPE scarr-carrname,

       END OF type_carrid.

DATA itab_carrid TYPE STANDARD TABLE OF type_carrid.

parameters airline(2) type c.

*&---------------------------------------------------------------------*

*& Processing Blocks called by the Runtime Environment                 *

*&---------------------------------------------------------------------*

* Event Block AT SELECTION-SCREEN ON VALUE-REQUEST FOR

at selection-screen on value-request for airline.

  perform frm_f4_help.

* Form for generating F4 HELP for parameter AIRLINE

form FRM_F4_HELP .

  SELECT carrid carrname

                FROM scarr

                INTO CORRESPONDING FIELDS OF TABLE itab_carrid.

  CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

       EXPORTING

            TABNAME         = 'SPFLI'    "指定stucture,必须的

            fieldname       = 'CARRID' "指定structure中的field

            dynpprog = sy-repid          "指定屏幕参数所在的程序名称

            dynpnr = sy-dynnr               "指定参数所在的屏幕编号

            dynprofield = 'AIRLINE'.    "指定屏幕参数的名称

  IF sy-subrc <> 0.

    ...

  ENDIF.

endform.                    " FRM_F4_HELP

2.F4IF_INT_TABLE_VALUE_REQUEST的应用实例

TYPES: BEGIN OF type_carrid,

         carrid TYPE spfli-carrid,

         connid type spfli-connid,

         carrname TYPE scarr-carrname,

       END OF type_carrid.

DATA itab_carrid TYPE STANDARD TABLE OF type_carrid.

* Selection Screen

parameters airline(2) type c.

* Event Block AT SELECTION-SCREEN ON VALUE-REQUEST FOR

at selection-screen on value-request for airline.

  perform frm_f4_help.

* Form for generating F4 HELP for parameter AIRLINE

form FRM_F4_HELP .

  SELECT carrid carrname

                FROM scarr

                INTO CORRESPONDING FIELDS OF TABLE itab_carrid.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

       EXPORTING

            retfield        = 'CARRID' "指定要返回屏幕参数的在内表中的field

            value_org       = 'S' "S代表structure

            dynpprog = sy-repid "指定屏幕参数所在的程序名称

            dynpnr = sy-dynnr "指定参数所在的屏幕编号

            dynprofield = 'AIRLINE'"指定屏幕参数的名称

       TABLES

            value_tab       = itab_carrid "内表

       EXCEPTIONS

            parameter_error = 1

            no_values_found = 2

            OTHERS          = 3.

  IF sy-subrc <> 0.

    ...

  ENDIF.

endform.                    " FRM_F4_HELP

完整例子:

DATA: BEGIN OF wa_help ,

        ebeln TYPE ebeln,

        aedat TYPE erdat,

      END OF wa_help.

DATA: it_help LIKE TABLE OF wa_help.

DATA: it_return LIKE TABLE OF ddshretval WITH HEADER LINE.





DATA: BEGIN OF wa_data.

        INCLUDE STRUCTURE ztable_line.

DATA: maktx(40),

      rowcolor(4),

      END OF wa_data.

DATA: it_data LIKE TABLE OF wa_data WITH HEADER LINE.

DATA: it_data_tmp LIKE TABLE OF wa_data WITH HEADER LINE.



DATA:BEGIN OF it_maktx OCCURS 0,

       matnr     TYPE matnr,

       maktx(40),

     END OF it_maktx.



SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_ebeln FOR g_ebeln OBLIGATORY.

SELECT-OPTIONS: s_bukrs FOR g_bukrs .



SELECTION-SCREEN END OF BLOCK bl1.

INITIALIZATION.

  CLEAR:it_help, wa_help.



  SELECT ebeln aedat

    INTO TABLE it_help

    FROM ekko

    UP TO 100 ROWS.

AT SELECTION-SCREEN.



*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ebeln.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

    EXPORTING

      retfield        = 'EBELN'

      value_org       = 'S'

    TABLES

      value_tab       = it_help

      return_tab      = it_return

    EXCEPTIONS

      parameter_error = 1

      no_values_found = 2

      OTHERS          = 3.

  IF it_return[] IS NOT INITIAL.

    READ TABLE it_return INDEX 1.

    IF sy-subrc = 0.

      s_ebeln-low = it_return-fieldval .

    ENDIF.

  ENDIF.



AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-high.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

    EXPORTING

      retfield        = 'EBELN'

      value_org       = 'S'

    TABLES

      value_tab       = it_help

      return_tab      = it_return

    EXCEPTIONS

      parameter_error = 1

      no_values_found = 2

      OTHERS          = 3.

  IF it_return[] IS NOT INITIAL.

    READ TABLE it_return INDEX 1.

    IF sy-subrc = 0.

      s_ebeln-high = it_return-fieldval .             

    ENDIF.

  ENDIF.

——————————————————————————————

总结:总上所述,在se11已经存在建立好的search help的情况下我们通常使用第一个function module,在需要给某个字段限定一些特殊值的时候,我们通常使用第2种function module.

F4IF_FIELD_VALUE_REQUEST 和 F4IF_INT_TABLE_VALUE_REQUEST的不同的更多相关文章

  1. F4IF_INT_TABLE_VALUE_REQUEST选择屏幕自定义F4帮助

    今天在用 F4IF_INT_TABLE_VALUE_REQUEST函数写选择屏幕的自定义帮助的时候,发现了个问题,那就是 F4IF_INT_TABLE_VALUE_REQUEST中参数value_ta ...

  2. 屏幕 Dynpro

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. PA教材提纲 TAW10-2

    Unit1 Introduction to the ABAP Dictionary(ABAP字典介绍) 1.1 Describing the ABAP Dictionary(描述ABAP字典) ABA ...

  4. ABAP技术总结

      SAP ——ABAP/4 技术总结 V3.0 2014-10-14 --江正军 1. 1.1. 1.1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.7.1. 1.7.2. ...

  5. 2019.03.30 Dialog demo 一个标准使用的dialog程序

    PROGRAM zdemo_dialog. INCLUDE zdemo_dialogtop. INCLUDE zdemo_dialogo01. INCLUDE zdemo_dialogi01. INC ...

  6. 自定义SAP搜索帮助记录-代码实现

    一般来说,标准的字段都可以用SE11来创建搜索帮助,但是有时候这里的满足不了需求或者,相同的数据元素需要用不同的搜索帮助类型,就需要用别的方式实现 1.用函数:F4IF_INT_TABLE_VALUE ...

  7. SAP中的F4帮助

    今天在调试标准程序的时候,意外的发现了一个F4帮助的函数,感觉还是挺好用的. F4IF_FIELD_VALUE_REQUEST从函数名就可以看出是给字段添加F4帮助的. F4 help for fie ...

  8. ABAP 订单-交货单-发货过账自动完成 案例

    *&---------------------------------------------------------------------* *& Report  ZSDR006 ...

  9. F4搜索帮助 带回多个值

    昨天群里有人问,就自己试了一下,POV执行在走PAI之前,所以空表行的时候TABLE里是没有数据的,所以一开始想用MIDOFY的想法看来不完善,可以再空表时做个APPEND.   后来又换了个想法,直 ...

随机推荐

  1. 通过xib自定义UITableViewCell

    通过xib自定义UITableViewCell 一.新建iOS Application工程,选择Single View Application,不要选中Use Storyboard.假设指定的是pro ...

  2. MFC控件(9):network address control

    这个控件的名字倒是取的不错,一看就知道是让你输入IP地址或host name的. 不过一打开看到那控件的样子就完全是个Edit control.不过该控件对应的类也确实是继承自类CEdit. 先拖个控 ...

  3. hdu 1166 敌兵布阵(线段树基础题)

    学习线段树~~~~~~~~~~~~要好好理解 此题是单点更新的线段树,考虑基本的询问,更新. #include <iostream> #include <algorithm> ...

  4. SharePoint Solutions Deployment-PowerShell

    之前群里有人问到了这个,项目一期开发结束后正好整理了一下,发上来分享一下,也是从谷歌搜索里面学来的,大家要用好搜索哈 $ver = $host | select version if ($ver.Ve ...

  5. php设计模式之抽象工厂模式

    之前总结了一下工厂模式,其实准确地说是简单 工厂模式,在它的基础上再进行抽象就可以得到一种新的模式:抽象工厂模式. 专业一点的定义为: 抽象工厂模式(Abstact Factory)是一种常见的软件设 ...

  6. 如何优雅的设计Redux中的Store

    用了几个月的redux,现在回过来总结一下. 刚开始用的时候遇到一个比较大的疑问,就是如何设计redux的store中的state树,这应该是我在使用redux中最大的一个疑问,阻挡了我前进的脚步,当 ...

  7. 基于Ajax的长轮询(long-polling)方式

    如 图 1 所示,AJAX 的出现使得 JavaScript 可以调用 XMLHttpRequest 对象发出 HTTP 请求,JavaScript 响应处理函数根据服务器返回的信息对 HTML 页面 ...

  8. 关于ASP.NET WebAPI中HTTP模型的相关思考

    对于.NET的分布式应用开发,可以供我们选择的技术和框架比较多,例如webservice,.net remoting,MSMQ,WCF等等技术.对于这些技术很多人都不会陌生,即时没有深入的了解,但是肯 ...

  9. ClickOnce部署疑难杂症:更新时部署与应用程序标识不一致问题。要安装此应用程序,请修改此文件的清单版本或卸载之前存在的应用程序。

    使用ClickOnce部署winform应用程序.无论是安装或者自动更新都极为方便,但有时候一些疑难杂症也令人头疼 1.注意每次部署完成之后 setup.exe无需覆盖,只需要在Application ...

  10. smoke.js是一款基于HTML5 Canvas的逼真烟雾特效js插件。通过该js插件,可以非常轻松的在页面中制作出各种烟雾效果。

    Smoke.js 是一个浏览器默认警告系统的JavaScript替代品,如果你想要跨浏览器与平台的标准化JavaScript警告窗口,Smoke.js就是你想要的. Smoke.js是一个轻量级且灵活 ...