一組有用的用戶交互窗口函數
顯示多條消息
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 有表格對象的確認窗口
在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.
CLEAR t_spop.
t_spop-selflag = ''.
t_spop-varoption = 'EKPO'.
t_spop-inactive = ''.
APPEND t_spop.
CLEAR t_spop.
t_spop-selflag = ''.
t_spop-varoption = 'MSEG'.
t_spop-inactive = ''.
APPEND t_spop.
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
