2014年2月26日 星期三

ABAP/4 : Using value-request popup screen to select Internal table or customize value by F4IF_INT_TABLE_VALUE_REQUEST

有的時侯,User 可能會需要使用特定的選單來進行選擇,在不建立 Search Help 的情況下,可以透過 Fuction Module : F4IF_INT_TABLE_VALUE_REQUEST 產生選擇的畫面。

如下圖,User 可自行定義 PARAMETERS,可選擇的畫面



SAMPLE CODE :

REPORT  Z_ERIC_CUSTOMIZE_POPUP_SELECT.

PARAMETERS : P_VALUE(10).

DATA: IT_RETURN LIKE STANDARD TABLE OF DDSHRETVAL WITH HEADER LINE.
DATA: WA_RETURN LIKE IT_RETURN.
"注意要用 DATA ELEMENT,EX : KEY TYPE I 會無法顯示
DATA: BEGIN OF IT_VALUE OCCURS 0,
        KEY    TYPE ANZNK,
        TEXT   TYPE TEXT10,
      END OF IT_VALUE.

"程式放在 ON VALUE-REQUEST 這樣 P_VALUE 才會有選單可以彈出視窗 (即按 F4 產生 VALUE-REQUEST 的選單)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VALUE.
  "自行填入指定的值
  IT_VALUE-KEY = '1'.
  IT_VALUE-TEXT = 'LINE 1'.
  APPEND IT_VALUE. CLEAR IT_VALUE.
  IT_VALUE-KEY = '2'.
  IT_VALUE-TEXT = 'LINE 2'.
  APPEND IT_VALUE. CLEAR IT_VALUE.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
       EXPORTING
            WINDOW_TITLE    = 'SELECT'    "POPUP 的 TITLE
            RETFIELD        = 'KEY'       "回傳哪個值
            VALUE_ORG       = 'S'         "回傳 Structure
       TABLES
            VALUE_TAB       = IT_VALUE
            RETURN_TAB      = IT_RETURN
       EXCEPTIONS
            PARAMETER_ERROR = 1
            NO_VALUES_FOUND = 2
            OTHERS          = 3.

  "回傳的值,要再回寫到 Selection Screen 的變數
  READ TABLE IT_RETURN INTO WA_RETURN INDEX 1.
  P_VALUE = WA_RETURN-FIELDVAL.

因為回傳的是一個 Structure,且上面的語法回傳時只會有一筆,因此過 Work Area 接收 Internal Table 中第一筆資料,再回寫到 Selection Screen 的變數

READ TABLE IT_RETURN INTO WA_RETURN INDEX 1.
P_VALUE = WA_RETURN-FIELDVAL.


如果要改成 Table,只需要 SELECT TABLE 值填入指定的 Internal Table 後即可

沒有留言:

張貼留言

How to install & specified python version or distreibtuion package version in google colab

在買了 RTX 3080 要來 挖礦...  嗯~是跑機器學習後,結果發現了 GOOGLE COLAB,其實之前在「GAN 對抗式生成網路」一書就有看到,但資訊人就是什麼都想自己安裝,在本機用 Anaconda + pyCharm 弄了 GPU 環境,結果有天從新竹回家發現家裡沒...