1. 程式人生 > >SAP 中的popup dialog (彈出對話框) 常見實現方法

SAP 中的popup dialog (彈出對話框) 常見實現方法

program ng- 方法 tput starting div class titlebar 小時

 
方法1:
FM:POPUP_TO_CONFIRM(標準對話彈出消息)
有三個button:YES-NO-CANL,可進行對應的邏輯推斷
可設定標題,描寫敘述問題,不方便對文本進行換行等排版,不能改變彈出框大小。
 
方法2:
FM:POPUP_CONTINUE_YES_NO
有兩個button:J-N(YES-NO),可進行對應的邏輯推斷
可設定標題,最大僅僅能小時兩行文本,不方便對兩行以上文本進行排版,不能改變彈出框大小。
 
方法3:
以內部數據,在文本編輯器中按行進行輸出
FM:ADA_POPUP_WITH_TABLE(Popup to display internal table data)
可設定標題,能將非常多數據,以text文本的方式,在彈出框中以text編輯器UI顯示,僅僅能控制彈出框顯示位置。不能改變彈出框大小。
 
方法4:
FM:POPUP_WITH_TABLE_DISPLAY(將數據當做表格數據顯示)
有兩個button:選擇-取消-(雙擊)
可設定標題。可將非常多數據按行進行顯示,而且還有選擇功能,能夠返回選中的行數。能夠控制彈出框顯示位置。能夠改變彈出框大小
 
方法5:
FM:POPUP_WITH_TABLE_DISPLAY_OK
有兩個button:選擇-取消
跟函數POPUP_WITH_TABLE_DISPLAY非常相似。可是沒有選擇功能,而且標題始終是‘Register’。不能改變。能夠控制彈出框顯示位置,能夠改變彈出框大小
 
方法6:
自己寫代碼
拷貝SAP 標準的程序用OO 的方法改寫ALV裏面detail display 的實現方法。
實現方法例如以下:
 
CALL SCREEN 0101 STARTING AT STARTPOS_COL STARTPOS_ROW
                   ENDING AT ENDPOS_COL ENDPOS_ROW.
 
*&---------------------------------------------------------------------*
*& Module STATUS_0101 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0101 OUTPUT.
  SET PF-STATUS ‘101‘.
  SET TITLEBAR ‘101‘.
ENDMODULE. " STATUS_0101 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0101 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0101 INPUT.
  IF ok_code = ‘CANCEL‘.
*   LEAVE PROGRAM.
    LEAVE TO SCREEN 0.
  ELSEIF ok_code = ‘CANCEL‘.
*   LEAVE PROGRAM.
    LEAVE TO SCREEN 0.
  ENDIF.
ENDMODULE. " USER_COMMAND_0101 INPUT
 
重點:CALL SCREEN 0101 STARTING AT 
                        ENDING AT .
 
 
這個語法,你就明確了,那麽煞費苦心的去找POPPUP 函數是多麽的狼狽。當然,假設,你知道,那麽就不用自己去寫了。
 
 

SAP 中的popup dialog (彈出對話框) 常見實現方法