视图维护(实现外壳程序过滤条件)
来源:互联网 发布: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.*&---------------------------------------------------------------------*