• 2018.03.30 abap屏幕标签保存之前执行过的状态


      1 REPORT  ZZJX_TEST09.
      2 *&---------------------------------------------------------------------*
      3 TABLES: T001W,T161,T161T,T024.
      4 
      5 DATA: L_OBJ TYPE REF TO CL_GUI_FRONTEND_SERVICES.
      6 DATA: IT_FILE TYPE FILETABLE WITH HEADER LINE.
      7 DATA: G_RC TYPE I.
      8 DATA: IL_RAW TYPE TRUXS_T_TEXT_DATA.
      9 
     10 
     11 DATA: G_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,   "字段内表
     12       L_LAYOUT TYPE SLIS_LAYOUT_ALV.
     13 
     14 DATA: BEGIN OF GT_UPLOAD OCCURS 0,
     15        DATA1(4) TYPE C,
     16        DATA2(4) TYPE C,
     17       END OF GT_UPLOAD.
     18 DATA: BEGIN OF GT_ALV1 OCCURS 0.
     19 *        INCLUDE STRUCTURE ZMMWERKS1.
     20 DATA:  STA(4) TYPE C,
     21     END OF GT_ALV1.
     22 
     23 DATA: BEGIN OF GT_ALV2 OCCURS 0.
     24 *        INCLUDE STRUCTURE ZMMWERKS2.
     25 DATA:  STA(4) TYPE C,
     26     END OF GT_ALV2.
     27 FIELD-SYMBOLS: <ALV1> LIKE LINE OF GT_ALV1,
     28                <ALV2> LIKE LINE OF GT_ALV2.
     29 DATA: L_FLAG TYPE I VALUE 1.
     30 
     31 DATA: BEGIN OF L_SIGN,
     32       FLAG TYPE I VALUE 1,
     33       BUTTON TYPE I VALUE 1,
     34   END OF L_SIGN.
     35 
     36 SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
     37 SELECTION-SCREEN BEGIN OF BLOCK S01 WITH FRAME TITLE TEXT-C01.
     38 PARAMETERS: P_RB1 RADIOBUTTON GROUP T1 DEFAULT 'X' USER-COMMAND T1,
     39             P_RB2 RADIOBUTTON GROUP T1 .
     40 SELECTION-SCREEN END OF BLOCK S01.
     41 SELECTION-SCREEN BEGIN OF BLOCK S02 WITH FRAME TITLE TEXT-C02.
     42 SELECT-OPTIONS: S_WERKS FOR T001W-WERKS.
     43 SELECTION-SCREEN END OF BLOCK S02.
     44 SELECTION-SCREEN END OF SCREEN 100.
     45 
     46 SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
     47 SELECTION-SCREEN BEGIN OF BLOCK S03 WITH FRAME TITLE TEXT-C01.
     48 PARAMETERS: P_RB3 RADIOBUTTON GROUP T2 DEFAULT 'X' USER-COMMAND T2,
     49             P_RB4 RADIOBUTTON GROUP T2 .
     50 SELECTION-SCREEN END OF BLOCK S03.
     51 SELECTION-SCREEN BEGIN OF BLOCK S04 WITH FRAME TITLE TEXT-C02.
     52 SELECT-OPTIONS: T_WERKS FOR T001W-WERKS,
     53                 T_BSART FOR T161-BSART MODIF ID M3,
     54                 T_EKGRP FOR T024-EKGRP MODIF ID M4.
     55 SELECTION-SCREEN END OF BLOCK S04.
     56 SELECTION-SCREEN END OF SCREEN 200.
     57 
     58 SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
     59 SELECTION-SCREEN BEGIN OF BLOCK S05 WITH FRAME TITLE TEXT-C01.
     60 PARAMETERS: P_RB5 RADIOBUTTON GROUP T3 DEFAULT 'X' USER-COMMAND T3,
     61             P_RB6 RADIOBUTTON GROUP T3 .
     62 SELECTION-SCREEN END OF BLOCK S05.
     63 SELECTION-SCREEN BEGIN OF BLOCK S06 WITH FRAME TITLE TEXT-C02.
     64 PARAMETERS: P_FIL1 TYPE RLGRAP-FILENAME MODIF ID M5,
     65             P_FIL2 TYPE RLGRAP-FILENAME MODIF ID M6.
     66 SELECTION-SCREEN END OF BLOCK S06.
     67 
     68 SELECTION-SCREEN END OF SCREEN 300.
     69 
     70 
     71 SELECTION-SCREEN: BEGIN OF TABBED BLOCK MYTAB FOR 12 LINES,
     72    TAB (25) BUTTON1 USER-COMMAND PUSH1,
     73    TAB (25) BUTTON2 USER-COMMAND PUSH2,
     74    TAB (25) BUTTON3 USER-COMMAND PUSH3,
     75 END OF BLOCK MYTAB.
     76 
     77 INITIALIZATION.
     78   BUTTON1 = TEXT-A01.
     79   BUTTON2 = TEXT-A02.
     80   BUTTON3 = TEXT-A03.
     81   MYTAB-PROG = SY-REPID.
     82 
     83 
     84   IMPORT L_SIGN FROM MEMORY ID 'FLAG'."主要使用内存共享的方式来实现,进入list退出之后保存进去之前的标签
     85   CASE L_SIGN-FLAG.
     86     WHEN 1.
     87       MYTAB-DYNNR = 100.
     88       MYTAB-ACTIVETAB = 'PUSH1'.
     89     WHEN 2.
     90       MYTAB-DYNNR = 200.
     91       MYTAB-ACTIVETAB = 'PUSH2'.
     92     WHEN 3.
     93       MYTAB-DYNNR = 300.
     94       MYTAB-ACTIVETAB = 'PUSH3'.
     95   ENDCASE.
     96   MODIFY SCREEN.
     97   FREE MEMORY ID 'FLAG'.
     98 
     99   "为控件页签单击事件, 选择不同页签显示不同子屏幕.
    100 
    101 AT SELECTION-SCREEN.
    102   CASE SY-UCOMM.
    103     WHEN 'PUSH1'.
    104       MYTAB-DYNNR = 100.
    105       MYTAB-ACTIVETAB = 'PUSH1'.
    106       L_SIGN-FLAG = 1.
    107       L_SIGN-BUTTON = 1.
    108     WHEN 'PUSH2'.
    109       MYTAB-DYNNR = 200.
    110       MYTAB-ACTIVETAB = 'PUSH2'.
    111       L_SIGN-FLAG = 2.
    112       L_SIGN-BUTTON = 2.
    113     WHEN 'PUSH3'.
    114       MYTAB-DYNNR = 300.
    115       MYTAB-ACTIVETAB = 'PUSH3'.
    116       L_SIGN-FLAG = 3.
    117       L_SIGN-BUTTON = 3.
    118   ENDCASE.
    119   EXPORT L_SIGN TO MEMORY ID 'FLAG'.
    120 
    121 AT SELECTION-SCREEN OUTPUT.
    122 
    123   LOOP AT SCREEN.
    124     CASE SCREEN-GROUP1.
    125       WHEN 'M1'.
    126         IF P_RB1 IS INITIAL.
    127           SCREEN-ACTIVE = '0'.
    128         ELSE.
    129           SCREEN-ACTIVE = '1'.
    130         ENDIF.
    131       WHEN 'M2'.
    132         IF P_RB2 IS INITIAL.
    133           SCREEN-ACTIVE = '0'.
    134         ELSE.
    135           SCREEN-ACTIVE = '1'.
    136         ENDIF.
    137       WHEN 'M2'.
    138         IF P_RB3 IS INITIAL.
    139           SCREEN-ACTIVE = '0'.
    140         ELSE.
    141           SCREEN-ACTIVE = '1'.
    142         ENDIF.
    143       WHEN 'M4'.
    144         IF P_RB4 IS INITIAL.
    145           SCREEN-ACTIVE = '0'.
    146         ELSE.
    147           SCREEN-ACTIVE = '1'.
    148         ENDIF.
    149       WHEN 'M5'.
    150         IF P_RB5 IS INITIAL.
    151           SCREEN-ACTIVE = '0'.
    152         ELSE.
    153           SCREEN-ACTIVE = '1'.
    154         ENDIF.
    155       WHEN 'M6'.
    156         IF P_RB6 IS INITIAL.
    157           SCREEN-ACTIVE = '0'.
    158         ELSE.
    159           SCREEN-ACTIVE = '1'.
    160         ENDIF.
    161     ENDCASE.
    162     MODIFY SCREEN.
    163   ENDLOOP.
    164 
    165 
    166 AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FIL1. "弹出选择文件对话框
    167   CREATE OBJECT L_OBJ.
    168   CLEAR IT_FILE[].
    169   CALL METHOD L_OBJ->FILE_OPEN_DIALOG
    170     EXPORTING
    171       FILE_FILTER       = '*.xls;*.xlsx;*.txt'
    172       INITIAL_DIRECTORY = 'C:data'
    173     CHANGING
    174       FILE_TABLE        = IT_FILE[]
    175       RC                = G_RC.
    176   READ TABLE IT_FILE INDEX 1.
    177   P_FIL1 = IT_FILE-FILENAME.
    178 
    179 AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FIL2. "弹出选择文件对话框
    180   CREATE OBJECT L_OBJ.
    181   CLEAR IT_FILE[].
    182   CALL METHOD L_OBJ->FILE_OPEN_DIALOG
    183     EXPORTING
    184       FILE_FILTER       = '*.xls;*.xlsx;*.txt'
    185       INITIAL_DIRECTORY = 'C:data'
    186     CHANGING
    187       FILE_TABLE        = IT_FILE[]
    188       RC                = G_RC.
    189   READ TABLE IT_FILE INDEX 1.
    190   P_FIL2 = IT_FILE-FILENAME.
    191 
    192 
    193 START-OF-SELECTION.
    194 
    195 END-OF-SELECTION.
    196   WRITE:/ 'hello'.

     F8进去的时候是这样的,出来的时候还是停留在标签3处。

  • 相关阅读:
    设计模式 --> (3)策略模式
    设计模式 --> (2)单例模式
    设计模式 --> (1)工厂模式
    Algorithm --> 十大排序算法
    Algorithm --> 求阶乘末尾0的个数
    网络通信 --> epoll用法
    数据库 --> sqlite3之api使用
    网络通信 --> select()用法
    网络通信 --> TCP三次握手和四次挥手
    『转载』周立功:专注的力量成就梦想
  • 原文地址:https://www.cnblogs.com/jxzhu/p/8677172.html
Copyright © 2020-2023  润新知