SAP 中的popup dialog (弹出对话框) 常见实现方法

 
方法1:
FM:POPUP_TO_CONFIRM(标准对话弹出消息)
有三个按钮:YES-NO-CANL,可进行相应的逻辑判断
可设定标题,描述问题,不方便对文本进行换行等排版,不能改变弹出框大小。
 
方法2:
FM:POPUP_CONTINUE_YES_NO
有两个按钮: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(将数据当做表格数据显示)
有两个按钮:选择-取消-(双击)
可设定标题,可将很多数据按行进行显示,并且还有选择功能,能够返回选中的行数,可以控制弹出框显示位置,可以改变弹出框大小
 
方法5:
FM:POPUP_WITH_TABLE_DISPLAY_OK
有两个按钮:选择-取消
跟函数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_ABAP)