日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

SAP技巧之修改自帶搜索幫助為自定數據集_數據庫其它

作者:百里落云 ? 更新時間: 2022-12-27 編程語言

HELLO ,這里是百里,一個學習中的ABAPER,在SAP開中傳統會經常遇到選擇屏幕,正常系統自帶的數據元素可以解決大部分數據搜索幫助的問題,但是一些自開發,或者用戶定制的選擇屏幕就會出現搜索幫助不存在的情況.此時需要自行建立選擇幫助.本案例將詳細介紹F4,選擇幫助的使用方式.

什么是F4搜索幫助

在標準的SAP中,提供了大量的數據元素類型,我們定義選擇屏幕時候只要參考表標準數據數據元素,就提供自帶的選擇幫助數據。我們增加的F4選擇幫助就是參考標準的制作的。

技術介紹

我們調用函數F4IF_INT_TABLE_VALUE_REQUEST ,傳輸取數內表,到 ??value_tab???

設定對應匹配字段值???retfield??????? ,然后設定對應的LOW 或者 HIGH 取數值 ?DYNPROFIELD????? .

FORM f_Create_username .  
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'  
  EXPORTING  
*   DDIC_STRUCTURE         = ' '  
    retfield               = 'USNAM'  
*   PVALKEY                = ' '  
  DYNPPROG               = SY-REPID  
  DYNPNR                 = SY-DYNNR  
  DYNPROFIELD            = 's_name-low'  
*   STEPL                  = 0  
*   WINDOW_TITLE           =  
*   VALUE                  = ' '  
   VALUE_ORG              = 'S'  
*   MULTIPLE_CHOICE        = ' '  
*   DISPLAY                = ' '  
*   CALLBACK_PROGRAM       = ' '  
*   CALLBACK_FORM          = ' '  
*   CALLBACK_METHOD        =  
*   MARK_TAB               =  
* IMPORTING  
 " USER_RESET             = 'S'  
  tables  
    value_tab              =     gt_Data  
*   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.  
ENDFORM.

實例展示

本案例內容為自建表,對應1000屏幕內的選擇屏幕取數介紹. 通過給LOW 和 HIGH 設定對應的值 跳出對應的選擇數據.

數據準備

tables  : znametable1 .  
data : gs_data  TYPE  znametable1 .  
data : gt_Data TYPE TABLE of znametable1 .  
sELECT-OPTIONS : s_name for  znametable1-name  .  
SELECT-OPTIONS : s_age for  znametable1-age  .

選擇屏幕幫助

at SELECTION-SCREEN on VALUE-REQUEST FOR s_name-low . 
PERFORM f_Create_username . 
at SELECTION-SCREEN on VALUE-REQUEST FOR s_name-high .
PERFORM f_Create_username . 

獲取數據及調用函數

FORM f_get_username .  
SELECT  NAME   AGE    INTO CORRESPONDING FIELDS OF TABLE  gt_Data FROM znametable1  .  
ENDFORM.  
*&---------------------------------------------------------------------*  
*& Form f_Create_username  
*&---------------------------------------------------------------------*  
*& text  
*&---------------------------------------------------------------------*  
*& -->  p1        text  
*& <--  p2        text  
*&---------------------------------------------------------------------*  
FORM f_Create_username .  
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'  
  EXPORTING  
*   DDIC_STRUCTURE         = ' '  
    retfield               = 'NAME'  
*   PVALKEY                = ' '  
  DYNPPROG               = SY-REPID  
  DYNPNR                 = SY-DYNNR  
  DYNPROFIELD            = 's_name-low'  
*   STEPL                  = 0  
*   WINDOW_TITLE           =  
*   VALUE                  = ' '  
   VALUE_ORG              = 'S'  
*   MULTIPLE_CHOICE        = ' '  
*   DISPLAY                = ' '  
*   CALLBACK_PROGRAM       = ' '  
*   CALLBACK_FORM          = ' '  
*   CALLBACK_METHOD        =  
*   MARK_TAB               =  
* IMPORTING  
 " USER_RESET             = 'S'  
  tables  
    value_tab              =     gt_Data  
*   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.  
ENDFORM.

結果

如圖,在選擇屏幕界面,我們自定義的選擇幫助內容即可展示出來,對應的配置字段為內表數據,而接受數據為對應 retfield????的字段 ,本案例為 NAME 接受的字段 .

image.png

技術總結

原文鏈接:https://juejin.cn/post/7171453148723970078

欄目分類
最近更新