视图维护(实现外壳程序过滤条件)

来源:互联网 发布:js this关键字 编辑:程序博客网 时间:2024/06/05 18:08

 1. 使用function: VIEW_MAINTENANCE_CALL取代用transaction with parameters产生t-code的方式调用维护示图

 2.外壳过滤条件的实现

          2.1 在外壳程序中把过滤条件传到内存中

         2.2 在function goup: ZXXXX 中的 LZXXXXTOP从内存中取得过滤条件

    *         LOAD-OF-PROGRAM.*         RANGES: S_WERKS FOR T001L-WERKS,*                 S_LGORT FOR T001L-LGORT.*         DATA: G_ACTVT TYPE C.*         IMPORT P1 = S_WERKS FROM MEMORY ID 'S_WERKS'.*         IMPORT P2 = S_LGORT FROM MEMORY ID 'S_LGORT'.*         IMPORT P3 = G_ACTVT FROM MEMORY ID 'G_ACTVT'.*         INSERT 'WERKS IN S_WERKS' INTO VIM_WHERETAB INDEX 1.*         INSERT 'AND LGORT IN S_LGORT' INTO VIM_WHERETAB INDEX 2.  *    2.3 在function: TABLEPROC_ZXXXX 里面, 注销过程:TABLEPROC,*        调用新的过程SUB_XXX_TABLEPROC, 新的过程里面的代码复制*        tableproc里面的代码, ---->代码如下**        *  PERFORM TABLEPROC.

*           PERFORM SUB_XXX_TABLEPROC.

*    2.4 调整新的过程SUB_XXX_TABLEPROC里面的代码*        注销过程:TABLE_GET_DATA, 调用新的过程SUB_xxx_TABLE_GET_DATA,*        新的过程里面的代码copy from 过程: TABLE_GET_DATA ---->代码如下**    *      PERFORM TABLE_GET_DATA.

*         PERFORM SUB_XXX_TABLE_GET_DATA.

*    2.5 调整新的过程SUB_XXX_TABLE_GET_DATA里面的代码*        注销语句: REFRESH VIM_WHERETAB.*        注销语句: SELECT * FROM (X_HEADER-MAINTVIEW) INTO TABLE <PRIMTAB>*        新增语句: SELECT * FROM (X_HEADER-MAINTVIEW) INTO TABLE*                  <PRIMTAB> WHERE (VIM_WHERETAB) ..*        ---->代码如下**        *    REFRESH VIM_WHERETAB.*        *   read data from database without wheretab...........................**           CREATE DATA PRIMTAB TYPE STANDARD TABLE OF (X_HEADER-MAINTVIEW)."UCb*           ASSIGN PRIMTAB->* TO <PRIMTAB>.*        *  SELECT * FROM (X_HEADER-MAINTVIEW) INTO TABLE <PRIMTAB>.**           SELECT * FROM (X_HEADER-MAINTVIEW) INTO TABLE <PRIMTAB> WHERE (VIM_WHERETAB) ..

* 4. 维护, 显示功能区分*    4.1 显示的时候隐藏转到维护截面去的toolbar, 在屏幕0001的PBO里面*        注销语句:MODULE LISTE_INITIALISIEREN. 起用新的module:*        SUB_xxx_LISTE_INITIALISIEREN, 新module的代码copy from*        MODULE LISTE_INITIALISIEREN. -->代码如下:***        PROCESS BEFORE OUTPUT.**  MODULE LISTE_INITIALISIEREN.*  MODULE SUB_LSL_LISTE_INITIALISIEREN.*  LOOP AT EXTRACT WITH CONTROL*   TCTRL_ZXXXX CURSOR NEXTLINE.*    MODULE LISTE_SHOW_LISTE.*  ENDLOOP.***    4.2 更改MODULE SUB_LSL_LISTE_INITIALISIEREN.*  在语句: SET CURSOR FIELD F LINE L OFFSET O. 之后*  在语句: PERFORM SET_PF_STATUS USING STATUS. 之前, 增加代码*  -->代码如下**  SET CURSOR FIELD F LINE L OFFSET O.***-------如果是显示状态, 则隐藏 [更改] 按钮*  DATA: BEGIN OF T_FCODE OCCURS 10,*          FCODE LIKE RSMPE-FUNC,*        END OF T_FCODE.*  IF G_ACTVT = 'S' . "显示*    EXCL_CUA_FUNCT-FUNCTION = 'AEND'. "更改*    COLLECT EXCL_CUA_FUNCT.*  ENDIF.**  PERFORM SET_PF_STATUS USING STATUS.*&---------------------------------------------------------------------*