2018.03.30 abap屏幕标签保存之前状态

Posted SAP Tab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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处。

以上是关于2018.03.30 abap屏幕标签保存之前状态的主要内容,如果未能解决你的问题,请参考以下文章

20170313 ABAP程序未激活状态下保存或激活进入debug

关于ABAP table control控件如何在点击按钮之后,将数据更新到屏幕上

ABAP选择屏幕字段无法输入负值

ABAP选择屏幕字段无法输入负值

[求助]关于ABAP中找生产订单状态的问题

ABAP——选择屏幕标题和ALV标题的修改(转)