c语言sscanf函数的用法是什么
258
2022-09-25
DEMO:ALV 行、列、单元格颜色控制
搜东西偶然看到一个不错的ALV demo
效果
代码
*&---------------------------------------------------------------------**& Report ZLM_010*&---------------------------------------------------------------------**& matnr LIKE mara-matnr, matkl LIKE mara-matkl, counter(4) TYPE n, free_text(15) TYPE c, color_line(4) TYPE c, " Line color color_cell TYPE lvc_t_scol, " Cell color END OF ty_mara.* StructuresDATA : wa_mara TYPE ty_mara, wa_fieldcat TYPE lvc_s_fcat, is_layout TYPE lvc_s_layo, wa_color TYPE lvc_s_scol.* Internal tableDATA : it_mara TYPE STANDARD TABLE OF ty_mara, it_fieldcat TYPE STANDARD TABLE OF lvc_s_fcat, it_color TYPE TABLE OF lvc_s_scol.* VariablesDATA : okcode LIKE sy-ucomm, w_alv_grid TYPE REF TO cl_gui_alv_grid, w_docking_container TYPE REF TO cl_gui_docking_container.PARAMETERS : p_column AS CHECKBOX, p_line AS CHECKBOX, p_cell AS CHECKBOX.AT SELECTION-SCREEN OUTPUT. PERFORM get_data. PERFORM fill_catalog. IF w_docking_container IS INITIAL. PERFORM create_objects. ENDIF.*&--------------------------------------------------------------**& Form create_objects*&--------------------------------------------------------------*FORM create_objects. CREATE OBJECT w_docking_container EXPORTING ratio = 60 EXCEPTIONS cntl_error = 1 cntl_system_error = 2 create_error = 3 lifetime_error = 4 lifetime_dynpro_dynpro_link = 5 OTHERS = 6. CREATE OBJECT w_alv_grid EXPORTING i_parent = w_docking_container.* Field that identify color line in internal table MOVE 'COLOR_LINE' TO is_layout-info_fname.* Field that identify cell color in inetrnal table MOVE 'COLOR_CELL' TO is_layout-ctab_fname. CALL METHOD w_alv_grid->set_table_for_first_display EXPORTING is_layout = is_layout CHANGING it_outtab = it_mara it_fieldcatalog = it_fieldcat EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4.ENDFORM.*&--------------------------------------------------------------**& Form get_data*&--------------------------------------------------------------*FORM get_data. SELECT * FROM mara UP TO 5 ROWS. CLEAR : wa_mara-color_line, wa_mara-color_cell. MOVE-CORRESPONDING mara TO wa_mara. ADD 1 TO wa_mara-counter. MOVE 'Blabla' TO wa_mara-free_text. IF wa_mara-counter = '0002' AND p_line = 'X'.* Color line MOVE 'C410' TO wa_mara-color_line. ELSEIF wa_mara-counter = '0004' AND p_cell = 'X'.* Color cell MOVE 'FREE_TEXT' TO wa_color-fname. MOVE '6' TO wa_color-color-col. MOVE '1' TO wa_color-color-int. MOVE '1' TO wa_color-color-inv. APPEND wa_color TO it_color. wa_mara-color_cell[] = it_color[]. ENDIF. APPEND wa_mara TO it_mara.ENDSELECT.ENDFORM.*&--------------------------------------------------------------**& Form fill_catalog*&--------------------------------------------------------------*FORM fill_catalog.****************************************************************** Colour code : ** Colour is a 4-char field where : ** - 1st char = C (color property) ** - 2nd char = color code (from 0 to 7) ** 0 = background color ** 1 = blue ** 2 = gray ** 3 = yellow ** 4 = blue/gray ** 5 = green ** 6 = red ** 7 = orange ** - 3rd char = intensified (0=off, 1=on) ** - 4th char = inverse display (0=off, 1=on) ** ** Colour overwriting priority : ** 1. Line ** 2. Cell ** 3. Column ****************************************************************** DATA : w_position TYPE i VALUE '1'. CLEAR wa_fieldcat. MOVE w_position TO wa_fieldcat-col_pos. MOVE 'MATNR' TO wa_fieldcat-fieldname. MOVE 'MARA' TO wa_fieldcat-ref_table. MOVE 'MATNR' TO wa_fieldcat-ref_field. APPEND wa_fieldcat TO it_fieldcat. ADD 1 TO w_position. CLEAR wa_fieldcat. MOVE w_position TO wa_fieldcat-col_pos. MOVE 'MATKL' TO wa_fieldcat-fieldname. MOVE 'MARA' TO wa_fieldcat-ref_table. MOVE 'MATKL' TO wa_fieldcat-ref_field.* Color column IF p_column = 'X'. MOVE 'C610' TO wa_fieldcat-emphasize. ENDIF. APPEND wa_fieldcat TO it_fieldcat. ADD 1 TO w_position. CLEAR wa_fieldcat. MOVE w_position TO wa_fieldcat-col_pos. MOVE 'COUNTER' TO wa_fieldcat-fieldname. MOVE 'N' TO wa_fieldcat-inttype. MOVE '4' TO wa_fieldcat-intlen. MOVE 'Counter' TO wa_fieldcat-coltext. APPEND wa_fieldcat TO it_fieldcat. ADD 1 TO w_position. CLEAR wa_fieldcat. MOVE w_position TO wa_fieldcat-col_pos. MOVE 'FREE_TEXT' TO wa_fieldcat-fieldname. MOVE 'C' TO wa_fieldcat-inttype. MOVE '20' TO wa_fieldcat-intlen. MOVE 'Text' TO wa_fieldcat-coltext. APPEND wa_fieldcat TO it_fieldcat.ENDFORM.
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~