Chinaunix首页 | 论坛 | 博客
  • 博客访问: 99295
  • 博文数量: 16
  • 博客积分: 536
  • 博客等级: 中士
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-02 11:37
个人简介

SAP 爱好者,记录一些知识点吧

文章分类

全部博文(16)

文章存档

2014年(1)

2012年(1)

2011年(3)

2010年(7)

2009年(4)

我的朋友

分类:

2010-01-17 18:22:46

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 函数是多么的狼狈,当然,如果,你知道,那么就不用自己去写了。
 
 
阅读(9923) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~