天天看點

ABAP 彈出對話框

一組有用的使用者互動視窗函數

顯示多條消息

SAP系統用的是這個函數:C14Z_MESSAGES_SHOW_AS_POPUP

POPUP_TO_CONFIRM_LOSS_OF_DATA 顯示有YES/NO的彈出視窗,提示使用者未儲存的資料将丢失

POPUP_TO_CONFIRM_STEP 提示是否确認操作的彈出視窗

*調用對話框函數

    call function ‘POPUP_TO_CONFIRM_STEP’

      EXPORTING

        titel          = text-m02

        textline1      = l_msgtxt

        cancel_display = space                          “不顯示CANCEL按鈕

      IMPORTING

        answer         = l_answer.

POPUP_TO_CONFIRM_WITH_MESSAGE 可以顯示定制的提示資訊的确認視窗

POPUP_TO_CONFIRM_WITH_VALUE 顯示确認使用者對某個特定對象的操作的彈出視窗

POPUP_TO_DECIDE 将待确認選項以單選按鈕的方式顯示的彈出視窗

POPUP_TO_DECIDE_WITH_MESSAGE 帶消息的确認視窗

POPUP_TO_DISPLAY_TEXT 顯示多行資訊的視窗

POPUP_TO_SELECT_MONTH 月份選擇視窗

POPUP_WITH_TABLE_DISPLAY 有表格對象的确認視窗

absp 彈出對話框示例:

在SAP的開發過程中,經常會用到對話框,SAP的系統有很多不同款式的對話框函數供你選擇,把對話框用好,在開發的過程中會帶來很大的便利,同時也讓你的程式運作效果更漂亮哦,下面我介紹一下如何使用彈出對話框單選框清單清單供使用者選擇,效果如下所示:

程式如下:

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

*& Report  ZTEST_POPUP

*&

*& Create By    : flying

*& Create Date  : 2009-11-25

*& Descriptions : 彈出類似單選框清單供使用者選擇

REPORT  ztest_popup.

TABLES: spopli.

*----------------------------------------------------------------------*

*  define internal tables

*  定義内表

*

DATA: t_spop LIKE spopli OCCURS 0 WITH HEADER LINE. "定義供使用者選擇清單

*  define data

*  定義變量

data: answer type string.              "用于存儲使用者選擇

*  start-of-selection

*  執行螢幕

START-OF-SELECTION.

PERFORM frm_popup_to_select.

*  form frm_popup_to_select

*  彈出對話框

FORM frm_popup_to_select.

REFRESH t_spop.

CLEAR t_spop.

t_spop-selflag = 'X'.                     "設定選中

t_spop-varoption = 'MBEW'.                "設定顯示的文本

t_spop-inactive  = ''.                    "設定不可編輯

APPEND t_spop.

t_spop-selflag = ''.

t_spop-varoption = 'EKPO'.

t_spop-inactive  = ''.

t_spop-varoption = 'MSEG'.

CALL FUNCTION 'POPUP_TO_DECIDE_LIST'

EXPORTING

cursorline               = 1

mark_flag                = ' '

mark_max                 = 1

start_col                = 20             "設定開始的列

start_row                = 7              "設定開始的行

textline1                = '請選擇'        "設定文本行内容1

*   TEXTLINE2                = ' '

*   TEXTLINE3                = ' '

titel                    = '測試使用者選擇' "設定标題

*   DISPLAY_ONLY             = ' '

IMPORTING

answer                   = answer         "獲得使用者選擇,這裡傳回的值對應是目前清單NO,比如第一個就傳回1,第二個傳回2。。。。。

tables

t_spopli                 = t_spop         "設定選擇清單

EXCEPTIONS

NOT_ENOUGH_ANSWERS       = 1

TOO_MUCH_ANSWERS         = 2

TOO_MUCH_MARKS           = 3

OTHERS                   = 4

.

IF sy-subrc <> 0.

ENDIF.

ENDFORM.                    "frm_popup_to_select