IT干货网

ABAP-折叠窗口

developer 2022年03月09日 SAP 207 0

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

评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!