SAP的F1和F4搜索幫助


 F4IF_FIELD_VALUE_REQUEST主要功能是將表里的字段對應的search help引入到屏幕上來,從而打開對話框,當然也可以任意指定某個search help。
F4IF_INT_TABLE_VALUE_REQUEST支持字定義內表,但是不能通過指定search help的方式打開對話框。
數據不常更新,且數據量不大的時候,為表創建緩存。
TRDIR查找用戶創建的全部程序。
REUSE_ALV_FIELDCATALOG_MERGE——從數據庫抓取相應內容,並生成字段目錄。
創建F1搜索幫助:
1、創建數據元素ZFF_EF1
2、在SE61填入數據元素-創建F1搜索幫助,填寫內容
3、代碼實現 Z_SALSH_HELPF1
PARAMETERS P_HELPF1 TYPE CHAR20.
DATA T_LINK LIKE TABLE OF TLINE WITH HEADER LINE.
 
AT SELECTION-SCREEN ON HELP-REQUEST FOR P_HELPF1.
  CALL FUNCTION 'HELP_OBJECT_SHOW'
    EXPORTING
      DOKCLASS                            = 'DE'
     DOKLANGU                            = '1'
      DOKNAME                             = 'ZFF_EF1'
*     DOKTITLE                            = ' '
*     CALLED_BY_PROGRAM                   = ' '
*     CALLED_BY_DYNP                      = ' '
*     CALLED_FOR_TAB                      = ' '
*     CALLED_FOR_FIELD                    = ' '
*     CALLED_FOR_TAB_FLD_BTCH_INPUT       = ' '
*     MSG_VAR_1                           = ' '
*     MSG_VAR_2                           = ' '
*     MSG_VAR_3                           = ' '
*     MSG_VAR_4                           = ' '
*     CALLED_BY_CUAPROG                   = ' '
*     CALLED_BY_CUASTAT                   =
*     SHORT_TEXT                          = ' '
*     CLASSIC_SAPSCRIPT                   = ' '
    TABLES
      LINKS                               = T_LINK
*   EXCEPTIONS
*     OBJECT_NOT_FOUND                    = 1
*     SAPSCRIPT_ERROR                     = 2
*     OTHERS                              = 3
            .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.
 
創建F4搜索幫助的兩種方式:
一、
1、使用SE11創建搜索幫助ZF_HELP- 選擇方法填數據庫表-添加搜索幫助參數(不需要管 已修改和缺省值)-保存-激活

 

 

 

 

2、創建數據庫表ZFF_DTH
     A 、填寫相應的字段
     B 、選擇字段一個字段-點搜索幫助-為它添加搜索幫助ZF_HELP.
     C 、點輸入幫助/檢查-檢查
PARAMETERS P_MATNR TYPE ZF_HELP-MATNR.
PARAMETERS P_MATNR TYPE CHAR18 MATCHCODE OBJECT ZHELP_DEMO. "搜索幫助
SELECT-OPTIONS S_HELP FOR ZFF_DTH-MATNR."區間的搜索幫助
二、(手寫代碼)
PARAMETERS P_MATNR TYPE CHAR18."選擇屏幕單值
 
TYPES:BEGIN OF TYP_01,
  MATNR TYPE MARA-MATNR,
  MAKTX TYPE MAKT-MAKTX,
  END OF TYP_01.
DATA GT_01 TYPE STANDARD TABLE OF TYP_01.
DATA GS_01 TYPE TYP_01.
 
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_MATNR."搜索幫助
SELECT MARA~MATNR"取數
       makt~maktx
  FROM MARA
  INNER JOIN MAKT ON  MARA~MATNR = MAKT~MATNR AND MAKT~SPRAS = SY-LANGU
  INTO TABLE GT_01.
 
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*     DDIC_STRUCTURE         = ' '
      retfield               = 'maktx'
*     PVALKEY                = ' '
     DYNPPROG               = SY-CPROG
     DYNPNR                 = SY-DYNNR"系統屏幕號
     DYNPROFIELD            = 'P_MATNR'
*     STEPL                  = 0
*     WINDOW_TITLE           =
*     VALUE                  = ' '
      VALUE_ORG              = 'S'
*     MULTIPLE_CHOICE        = ' '
*     DISPLAY                = ' '
*     CALLBACK_PROGRAM       = ' '
*     CALLBACK_FORM          = ' '
*     CALLBACK_METHOD        =
*     MARK_TAB               =
*   IMPORTING
*     USER_RESET             =
    tables
      value_tab              = GT_01
*     FIELD_TAB              =
*     RETURN_TAB             =
*     DYNPFLD_MAPPING        =
*   EXCEPTIONS
*     PARAMETER_ERROR        = 1
*     NO_VALUES_FOUND        = 2
*     OTHERS                 = 3
            .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.
區間的搜索幫助
DATA :BEGIN OF TYP_01,
  ABC TYPE CHAR18,
  END OF TYP_01.
SELECT-OPTIONS S_HELP01 FOR TYP_01-ABC.
 
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_HELP01-LOW.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_HELP01-HIGH.
調用函數時 : DYNPROFIELD            = 'S_HELP01-LOW'
*源代碼
TYPES:BEGIN OF TYP_01,
  MATNR TYPE MARA-MATNR,
  MAKTX TYPE MAKT-MAKTX,
  END OF TYP_01.
  DATA GT_01 TYPE STANDARD TABLE OF TYP_01 WITH HEADER LINE.
DATA GS_01 TYPE TYP_01.
 
 
SELECT-OPTIONS S_HELP FOR GT_01-MAKTX.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_HELP-LOW.
 
SELECT MARA~MATNR
       makt~maktx
  FROM MARA
  INNER JOIN MAKT ON  MARA~MATNR = MAKT~MATNR AND MAKT~SPRAS = SY-LANGU
  INTO TABLE GT_01.
 
 
 
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*     DDIC_STRUCTURE         = ' '
      retfield               = 'maktx'
*     PVALKEY                = ' '
     DYNPPROG               = SY-CPROG
     DYNPNR                 = SY-DYNNR
     DYNPROFIELD            = 'S_HELP-LOW'
*     STEPL                  = 0
*     WINDOW_TITLE           =
*     VALUE                  = ' '
      VALUE_ORG              = 'S'
*     MULTIPLE_CHOICE        = ' '
*     DISPLAY                = ' '
*     CALLBACK_PROGRAM       = ' '
*     CALLBACK_FORM          = ' '
*     CALLBACK_METHOD        =
*     MARK_TAB               =
*   IMPORTING
*     USER_RESET             =
    tables
      value_tab              = GT_01[]
*     FIELD_TAB              =
*     RETURN_TAB             =
*     DYNPFLD_MAPPING        =
*   EXCEPTIONS
*     PARAMETER_ERROR        = 1
*     NO_VALUES_FOUND        = 2
*     OTHERS                 = 3
            .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.
 
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_HELP-HIGH.
   CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*     DDIC_STRUCTURE         = ' '
      retfield               = 'maktx'
*     PVALKEY                = ' '
     DYNPPROG               = SY-CPROG
     DYNPNR                 = SY-DYNNR
     DYNPROFIELD            = 'S_HELP-HIGH'
*     STEPL                  = 0
*     WINDOW_TITLE           =
*     VALUE                  = ' '
      VALUE_ORG              = 'S'
*     MULTIPLE_CHOICE        = ' '
*     DISPLAY                = ' '
*     CALLBACK_PROGRAM       = ' '
*     CALLBACK_FORM          = ' '
*     CALLBACK_METHOD        =
*     MARK_TAB               =
*   IMPORTING
*     USER_RESET             =
    tables
      value_tab              = GT_01[]
*     FIELD_TAB              =
*     RETURN_TAB             =
*     DYNPFLD_MAPPING        =
*   EXCEPTIONS
*     PARAMETER_ERROR        = 1
*     NO_VALUES_FOUND        = 2
*     OTHERS                 = 3
            .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM