方法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 函数是多么的狼狈,当然,如果,你知道,那么就不用自己去写了。