ABAP-折叠窗口

1.测试

2.代码

  1 *&---------------------------------------------------------------------*
  2 *& Report  ZRICO_TEST24
  3 *&
  4 *&---------------------------------------------------------------------*
  5 *&
  6 *&
  7 *&---------------------------------------------------------------------*
  8 report zrico_test24.
  9 
 10 tables:  sscrfields.
 11 data:  g_code type sscrfields-ucomm.  "FUNCTION CODE
 12 
 13 
 14 parameters: p_cb0(1) type c no-display,   "Close Block 0
 15             p_cb1(1) type c no-display.   "Close Block 1
 16 
 17 selection-screen function key 1."expand all blocks
 18 selection-screen function key 2. "collapse all blocks
 19 
 20 ***************** Block 00 *** Description data file
 21 selection-screen: pushbutton /1(60) pushb_o0         "Open Block 00
 22                     user-command ucomm_o0 modif id mo0,     "#EC NEEDED
 23                   pushbutton /1(60) pushb_c0         "Close Block 00
 24                     user-command ucomm_c0 modif id mc0.     "#EC NEEDED
 25 selection-screen begin of block b0 with frame title text-000.
 26 parameters: p_down00 type downloadx as checkbox modif id mc0.
 27 selection-screen end of block b0.
 28 
 29 ***************** Block 01 *** Report 01
 30 selection-screen: pushbutton /1(60) pushb_o1         "Open Block 01
 31                     user-command ucomm_o1 modif id mo1,     "#EC NEEDED
 32                   pushbutton /1(60) pushb_c1         "Close Block 01
 33                     user-command ucomm_c1 modif id mc1.     "#EC NEEDED
 34 selection-screen begin of block b1 with frame title text-001.
 35 parameters: p_rep01 as checkbox modif id mc1."DEFAULT 'X'.
 36 parameters: p_var01 like varid-variant modif id mc1.
 37 selection-screen end of block b1.
 38 
 39 initialization.
 40 
 41 * Close Selection-Screen
 42   p_cb0 = 'X'. p_cb1 = 'X'.
 43 * Set Text & Icon for application bar
 44   concatenate icon_expand: 'Expand all blocks' into sscrfields-functxt_01.
 45   concatenate icon_collapse: 'Collapse all blocks' into sscrfields-functxt_02.
 46 
 47 * Set Text & Icon for Pushbutton
 48   concatenate icon_collapse: 'Block 00' into pushb_c0,
 49                              'Block 01' into pushb_c1 .
 50 
 51   concatenate icon_expand: 'Block 00' into pushb_o0,
 52                            'Block 01' into pushb_o1.
 53 
 54 at selection-screen.
 55   g_code = sscrfields-ucomm.
 56   case g_code.
 57 *Expand all blocks
 58     when 'FC01'.
 59       perform expand_all_blocks.
 60 *Collapse all blocks
 61     when 'FC02'.      "Collapse all blocks
 62       perform collapse_all_blocks.
 63 *Open/close individual block functions
 64     when 'UCOMM_O0'.                   "Open Block 0
 65       clear p_cb0.
 66     when 'UCOMM_C0'.                   "Close Block 0
 67       p_cb0 = 'X'.
 68     when 'UCOMM_O1'.                   "Open Block 1
 69       clear p_cb1.
 70     when 'UCOMM_C1'.                   "Close Block 1
 71       p_cb1 = 'X'.
 72   endcase.
 73 
 74 
 75 at selection-screen output.
 76 *modify screen according predefined screen group
 77   loop at screen.
 78     case screen-group1.
 79       when 'MC0'.
 80         perform close_block using: p_cb0 'MC0' space.
 81       when 'MO0'.
 82         perform close_block using: p_cb0 'MO0' 'X'  .
 83       when 'MC1'.
 84         perform close_block using: p_cb1 'MC1' space.
 85       when 'MO1'.
 86         perform close_block using: p_cb1 'MO1' 'X'  .
 87       when others.
 88         continue.
 89     endcase.
 90   endloop.
 91 
 92 
 93 *&---------------------------------------------------------------------*
 94 *&      Form  close_block
 95 *&---------------------------------------------------------------------*
 96 form close_block using  value(i_close_block) like p_cb1
 97                         value(i_modify_id) like screen-group1
 98                         value(i_convert) type char1.
 99   if not i_convert is initial.
100     if i_close_block is initial.
101       i_close_block = 'X'.
102     else.
103       clear i_close_block.
104     endif.
105   endif.
106 
107   if ( screen-group1 = i_modify_id )
108   and ( not i_close_block is initial ).
109     screen-active = '0'.
110     modify screen.
111   endif.
112 
113 endform.                    "close_block
114 
115 *&---------------------------------------------------------------------*
116 *&      Form  collapse_all_blocks
117 *&---------------------------------------------------------------------*
118 form collapse_all_blocks.
119   p_cb0 = 'X'.p_cb1 = 'X'.
120 endform.                    "collapse_all_blocks
121 
122 *&---------------------------------------------------------------------*
123 *&      Form  expand_all_blocks
124 *&---------------------------------------------------------------------*
125 form expand_all_blocks.
126   clear: p_cb0,p_cb1  .
127 endform.
View Code

猜你喜欢

转载自www.cnblogs.com/ricoo/p/10184244.html
今日推荐