SAP 中很多时候是需要弹出式对话框的,提醒客户是否要进行下一个操作,我们可以调用FUNCTION MODULE : POPUP_TO_CONFIRM,POPUP_CONTINUE_YES_NO.显示选中某一行的数据类似与ALV 里面的detail item 的显示,可以用ADA_POPUP_WITH_TABLE ,缺点是这个对话框不可以修改大小,POPUP_WITH_TABLE_DISPLAY这个fm, 是提供选择的数据但是,如果显示的choose or cancel ,所以也不可以满足要求,POPUP_WITH_TABLE_DISPLAY_OK 这个FM 可以修改大小,但是title bar 显示的title 却不可以改变是‘Register',总之目前我找了很多都没有找到,可以肯定的一个方法,拷贝SAP 标准的程序用OO 的方法改写ALV里面detail display 的实现方法,
当一切的方法你都觉得没有现成的可以实现的时候,其实很简单,自己建立一个呗,要怎么显示就怎么显示,很难么,easy也。实现方法如下:
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 函数是多么的狼狈,当然,如果,你知道,那么就不用自己去写了。