ALV Styles in Field catalogue using OOPS
生活随笔
收集整理的這篇文章主要介紹了
ALV Styles in Field catalogue using OOPS
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉自http://www.saptechnical.com/Tutorials/ALV/Styles/demo.htm
By?Swarna S, Tata Consultancy Services
*&---------------------------------------------------------------------* *& Report ZALV_STYLES * *& Published at SAPTechnical.COM * *&---------------------------------------------------------------------* *& AS : ALV Styles in a fieldcatalogue. * *& The ALV is developed using OOPS and various styles are given for * *& each column in the fieldcatalogue * *&---------------------------------------------------------------------* REPORT zalv_styles. *Include for ALV styles INCLUDE <cl_alv_control>. *Type ppols for alv TYPE-POOLS : slis. *structure for t582a tbale TYPES : BEGIN OF ty_table,infty TYPE infty,pnnnn TYPE pnnnn_d,zrmkz TYPE dzrmkz,zeitb TYPE dzeitb,dname TYPE dianm,edynr TYPE edynp,ldynr TYPE ldynp,stypt TYPE stypt,sytxt TYPE sytxt,davo TYPE davo,davoe TYPE davoe,END OF ty_table. *Structure for infotype text TYPES : BEGIN OF ty_itext,infty TYPE infty,itext TYPE intxt,sprsl TYPE sprsl,END OF ty_itext. *Structure for output display TYPES : BEGIN OF ty_output,infty TYPE infty,itext TYPE intxt,pnnnn TYPE pnnnn_d,zrmkz TYPE dzrmkz,zeitb TYPE dzeitb,dname TYPE dianm,edynr TYPE edynp,ldynr TYPE ldynp,stypt TYPE stypt,sytxt TYPE sytxt,davo TYPE davo,davoe TYPE davoe,text(6) TYPE c,sradio(6) TYPE c,scheck(6) TYPE c,END OF ty_output. *internal table and work area declarations DATA : it_table TYPE STANDARD TABLE OF ty_table INITIAL SIZE 0,it_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,it_ittext TYPE STANDARD TABLE OF ty_itext INITIAL SIZE 0,wa_table TYPE ty_table,wa_output TYPE ty_output,wa_ittext TYPE ty_itext. *Data declarations for ALV DATA: c_ccont TYPE REF TO cl_gui_custom_container, "Custom container c_alvgd TYPE REF TO cl_gui_alv_grid, "ALV grid objectit_fcat TYPE lvc_t_fcat, "Field catalogueit_layout TYPE lvc_s_layo. "Layout *Field symbols declarations for style FIELD-SYMBOLS : <wa_fcat> TYPE lvc_s_fcat. *initialization event INITIALIZATION. *start of selection event START-OF-SELECTION. *select the infotypes maintainedSELECT inftypnnnnzrmkzzeitbdnameedynrldynrstyptsytxtdavodavoeFROM t582a UP TO 25 ROWSINTO CORRESPONDING FIELDS OF TABLE it_table. * *Select the infotype textsIF it_table[] IS NOT INITIAL.SELECT itextinftysprslFROM t582sINTO CORRESPONDING FIELDS OF TABLE it_ittextFOR ALL ENTRIES IN it_tableWHERE infty = it_table-inftyAND sprsl = 'E'.ENDIF. *Apppending the data to the internal table of ALV outputLOOP AT it_table INTO wa_table. wa_output-infty = wa_table-infty.wa_output-pnnnn = wa_table-pnnnn.wa_output-zrmkz = wa_table-zrmkz.wa_output-zeitb = wa_table-zeitb.wa_output-dname = wa_table-dname.wa_output-edynr = wa_table-edynr.wa_output-ldynr = wa_table-ldynr.wa_output-stypt = wa_table-stypt.wa_output-sytxt = wa_table-sytxt.wa_output-davo = wa_table-davo.wa_output-davoe = wa_table-davoe. * For texts READ TABLE it_ittext INTO wa_ittext WITH KEY infty = wa_table-infty.wa_output-itext = wa_ittext-itext.wa_output-text = wa_ittext-sprsl. APPEND wa_output TO it_output.CLEAR wa_output. ENDLOOP. * Calling the ALV screen with custom container CALL SCREEN 0600. *On this statement double click it takes you to the screen painter SE51. *Enter the attributes *Create a Custom container and name it CC_CONT and OK code as OK_CODE. *Save check and Activate the screen painter. *Now a normal screen with number 600 is created which holds the ALV grid. * PBO of the actual screen , * Here we can give a title and customized menus *&---------------------------------------------------------------------* *& Module STATUS_0600 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_0600 OUTPUT. * SET PF-STATUS 'xxxxxxxx'. * SET TITLEBAR 'xxx'. ENDMODULE. " STATUS_0600 OUTPUT * calling the PBO module ALV_GRID. *&---------------------------------------------------------------------* *& Module ALV_GRID OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE alv_grid OUTPUT.CREATE OBJECT c_ccontEXPORTINGcontainer_name = 'CC_CONT'.CREATE OBJECT c_alvgd EXPORTING i_parent = c_ccont. * SET field for ALVPERFORM alv_build_fieldcat. * Setting the styles for the ALV grid control * using field-symbols LOOP AT it_fcat ASSIGNING <wa_fcat>. *For Each and every line of the fieldcatCASE sy-tabix. *Color Styles *Background/Font/Group/positive/negativeWHEN '1'.<wa_fcat>-style = alv_style_color_inv_positive.WHEN '2'.<wa_fcat>-style = alv_style_color_int_negative.WHEN '3'.<wa_fcat>-style = alv_style_color_inv_negative.WHEN '4'.<wa_fcat>-style = alv_style_color_int_positive.WHEN '5'.<wa_fcat>-style = alv_style_color_background.<wa_fcat>-style = alv_style_color_inv_background.WHEN '6'.<wa_fcat>-style = alv_style_color_group.<wa_fcat>-style = alv_style_color_int_background. *Style for F4WHEN '7'.<wa_fcat>-style = alv_style_f4. *Style for Alignment(others are also possible)WHEN '8'.<wa_fcat>-style = alv_style_align_left_bottom. *Style for Font Underlined/Bold and Italic are possibleWHEN '9'.<wa_fcat>-style = alv_style_font_underlined. *Style for button typeWHEN '10'.<wa_fcat>-style = alv_style_button. *Style for Font SymbolWHEN '11'.<wa_fcat>-style = alv_style_font_symbol. *Style for RadiobuttonWHEN '12'.<wa_fcat>-style = alv_style_radio_checked. *Style for checkboxWHEN '13'.<wa_fcat>-style = alv_style_checkbox_checked. *Style for column style characteristics(highlighting the col)WHEN '14'.<wa_fcat>-style = alv_col_style_characteristic. *Styles for Enabling the columnWHEN '15'.<wa_fcat>-style = alv_style_enabled. ENDCASE. ENDLOOP. * Set ALV attributes FOR LAYOUTPERFORM alv_report_layout. CHECK NOT c_alvgd IS INITIAL. * Call ALV GRID CALL METHOD c_alvgd->set_table_for_first_displayEXPORTINGis_layout = it_layoutCHANGINGit_outtab = it_outputit_fieldcatalog = it_fcatEXCEPTIONSinvalid_parameter_combination = 1program_error = 2too_many_lines = 3OTHERS = 4.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF. ENDMODULE. " ALV_GRID OUTPUT *&---------------------------------------------------------------------* *& Form alv_build_fieldcat *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_IT_FCAT text *----------------------------------------------------------------------* *subroutine to build fieldcat FORM alv_build_fieldcat. DATA lv_fldcat TYPE lvc_s_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '1'.lv_fldcat-fieldname = 'INFTY'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 8.lv_fldcat-scrtext_m = 'Infotype'.lv_fldcat-icon = 'X'.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '2'.lv_fldcat-fieldname = 'PNNNN'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 15.lv_fldcat-scrtext_m = 'Structure'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '3'.lv_fldcat-fieldname = 'ITEXT'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 60.lv_fldcat-scrtext_m = 'Description'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '4'.lv_fldcat-fieldname = 'TEXT'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 5.lv_fldcat-scrtext_m = 'General'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '5'.lv_fldcat-fieldname = 'ZRMKZ'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 1.lv_fldcat-scrtext_m = 'PERIOD'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '6'.lv_fldcat-fieldname = 'ZEITB'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 60.lv_fldcat-scrtext_m = 'Time constraint'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '7'.lv_fldcat-fieldname = 'DNAME'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 15.lv_fldcat-scrtext_m = 'Dialogmodule'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '8'.lv_fldcat-fieldname = 'EDYNR'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'Single screenno'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '9'.lv_fldcat-fieldname = 'LDYNR'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'List screenno'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '10'.lv_fldcat-fieldname = 'STYPT'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'SubtypeTable'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '11'.lv_fldcat-fieldname = 'SYTXT'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'Font Symbol'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '12'.lv_fldcat-fieldname = 'SRADIO'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'RADIO'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '13'.lv_fldcat-fieldname = 'SCHECK'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'CHECK'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '14'.lv_fldcat-fieldname = 'DAVO'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'Start Date'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. lv_fldcat-row_pos = '1'.lv_fldcat-col_pos = '15'.lv_fldcat-fieldname = 'DAVOE'.lv_fldcat-tabname = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'End date'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat. ENDFORM. " alv_build_fieldcat *&---------------------------------------------------------------------* *& Form alv_report_layout *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_IT_LAYOUT text *----------------------------------------------------------------------* *Subroutine for setting alv layout FORM alv_report_layout.it_layout-cwidth_opt = 'X'.it_layout-zebra = 'X'.it_layout-col_opt = 'X'. ENDFORM. " alv_report_layout * PAI module of the screen created. In case we use an interactive ALV or *for additional functionalities we can create OK codes *and based on the user command we can do the coding. *&---------------------------------------------------------------------* *& Module USER_COMMAND_0600 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE user_command_0600 INPUT. ENDMODULE. " USER_COMMAND_0600 INPUTOutput
Part 1
(Continued output)
Part 2?
轉載于:https://www.cnblogs.com/kalasitifen/archive/2012/10/16/2726260.html
總結
以上是生活随笔為你收集整理的ALV Styles in Field catalogue using OOPS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 复制分区文件,dd复制分区后
- 下一篇: android 反编译jar包