salv 使用

mac2024-10-15  55

&--------------------------------------------------------------------- *& Report Z_YY_PRG_002 &--------------------------------------------------------------------- *& &--------------------------------------------------------------------- REPORT Z_YY_PRG_002.

*MESSAGE ‘xxxx1’ type ‘W’. *MESSAGE ‘xxxx2’ type ‘I’. *MESSAGE ‘xxxx3’ type ‘W’.

*MESSAGE I001(ZTEST01).

include .

------------------------------------------------------------------------- class lcl_handle_events DEFINITION. PUBLIC SECTION. METHODS: on_double_click for EVENT double_click of cl_salv_events_table IMPORTING row column ,

methods on_link_click for event link_click of cl_salv_events_table importing row column. METHODS : on_user_command for event added_function of cl_salv_events_table IMPORTING e_salv_function.

ENDCLASS.

class lcl_handle_events IMPLEMENTATION. method on_double_click.

PERFORM show_cell_info using row column ‘is selected’.

PERFORM show_PoList .

ENDMETHOD.

method on_link_click. PERFORM show_cell_info using row column ‘is selected with hotspot’. ENDMETHOD.

METHOD on_user_command. PERFORM handle_user_command using e_salv_function. ENDMETHOD.

ENDCLASS.

form show_cell_info using p_row type i p_column type lvc_fname p_text type string.

data: l_row type char10. write p_row to l_row LEFT-JUSTIFIED.

CONCATENATE l_row ‘Line’ p_column ‘Column’ p_text into p_text SEPARATED BY space.

MESSAGE i000(0k) WITH p_text.

ENDFORM.

form handle_user_command using p_function type salv_de_function. case p_function. when ‘REFRESH’. perform fresh. when ‘DOWNLOAD’. perform fresh. when OTHERS.

ENDCASE. ENDFORM.

form show_PoList . data polist type STANDARD TABLE OF ekko.

select * into TABLE polist from ekko UP TO 10 rows.

data gr_table2 type REF TO cl_salv_table.

cl_salv_table=>factory( importing r_salv_table = gr_table2 changing t_table = polist ) .

gr_table2->set_screen_popup( start_column = 20 end_column = 100 start_line = 10 end_line = 20 ).

gr_table2->display( ).

ENDFORM.

SELECTION-SCREEN : begin of line, COMMENT 1(8) txt01 FOR FIELD pBUKRS. PARAMETERS pBUKRS like ekko-BUKRS.

SELECTION-SCREEN end of line.

SELECTION-SCREEN : begin of line, COMMENT 1(8) txt02 for FIELD pEKORG. PARAMETERS pEKORG like ekko-EKORG. SELECTION-SCREEN end of line.

types: begin of ty_VendorList, LIFNR type LIFNR, NAME1 type NAME1_GP, REGIO type REGIO, BUKRS type BUKRS, EKORG type EKORG, exception type char1, icon type icon_d, END OF ty_VendorList.

data gt_VendorList type STANDARD TABLE OF ty_VendorList.

data gs_vendorList type ty_VendorList.

DATA: gr_table TYPE REF TO cl_salv_table.

DATA: gr_functions type REF TO cl_salv_functions_list.

DATA: gr_display type REF TO cl_salv_display_settings.

data: gr_layout type REF TO cl_salv_layout. data g_program type salv_s_layout_key.

data gr_columns type REF TO cl_salv_columns_table. data gr_column TYPE REF TO cl_salv_column_table.

data gr_sorts type REF TO cl_salv_sorts.

DATA g_color type lvc_s_colo.

DATA gr_event type REF TO lcl_handle_events.

INITIALIZATION. txt01 = ‘公司代号’. txt02 = ‘采购组织’.

START-OF-SELECTION.

select a~LIFNR a~Name1 a~Regio b~BUKRS c~EKORG into CORRESPONDING FIELDS OF TABLE gt_VendorList from LFA1 as a INNER JOIN LFB1 as b on a~LIFNR = b~LIFNR "and a~MANDT = b~MANDT INNER JOIN LFM1 as c on a~LIFNR = c~LIFNR "and a~MANDT = c~MANDT where b~BUKRS = pBUKRS and c~EKORG = pEKORG UP TO 25 rows.

data icount type i. move 0 to icount.

loop at gt_vendorlist into gs_vendorList. if icount >= 10. gs_vendorList-exception = ‘1’. gs_vendorList-icon = ICON_UNLOCKED. ELSEIF icount >= 5. gs_vendorList-exception = ‘2’. gs_vendorList-icon = icon_message_warning. else. gs_vendorList-exception = ‘3’. gs_vendorList-icon = icon_locked. ENDIF.

modify gt_VendorList from gs_vendorList. icount = icount + 1 .

ENDLOOP.

cl_salv_table=>factory( EXPORTING list_display = abap_true IMPORTING r_salv_table = gr_table CHANGING t_table = gt_VendorList ).

gr_functions = gr_table->GET_FUNCTIONS( ). gr_functions->set_default( ).

gr_functions->set_all( abap_true ).

gr_functions->add_function(

EXPORTING name = 'XXXX'

** icon = ‘@M9@’ ** text = ‘下载文档’

tooltip = '下载文档' position = if_salv_c_function_position=>right_of_salv_functions ).

gr_functions->set_all( abap_true ).

compile error

gr_display->se_striped_pattern(cl_salv_display_settings=>true).

gr_display = gr_table->get_display_settings( ). gr_display->set_list_header('Header test').

*CALL METHOD gr_display->SET_HORIZONTAL_LINES

EXPORTING

VALUE = abap_true

.

gr_display->SET_HORIZONTAL_LINES(‘X’).

gr_display->SET_vertical_LINES(‘X’).

gr_layout = gr_table->get_layout( ).

g_program = sy-repid.

gr_layout->set_key(g_program).

error

gr_layout->set_save_estriction(cl_salv_layout=>restrict_none).

gr_columns = gr_table->get_Columns( ).

gr_column ?= gr_columns->get_column(‘NAME1’).

gr_column->set_visible( cl_salv_column_table=>false ).

gr_column->set_cell_type( if_salv_c_cell_type=>hotspot ).

gr_columns = gr_table->get_Columns( ).

gr_column ?= gr_columns->get_column(‘LIFNR’). ** gr_column->set_visible(’ ').

gr_column->set_long_text(‘Long Text’).

gr_column->set_medium_text(‘medium Text’).

gr_column->set_short_text(‘short Text’).

g_color-col = ‘6’.

g_color-int = ‘1’.

g_color-inv = ‘0’.

gr_column->set_color(g_color).

gr_column->set_color( g_color ).

gr_column->set_visible( cl_salv_column_table=>false ).

gr_sorts = gr_table->get_sorts( ).

gr_sorts->add_sort(‘LIFNR’).

gr_table->set_screen_popup(

start_column = 20

end_column = 100

start_line = 10

end_line = 20 ).

data lr_event type REF TO cl_salv_events_table. lr_event = gr_table->get_event( ).

CREATE OBJECT gr_event. set HANDLER gr_event->on_double_click for lr_event. set HANDLER gr_event->on_link_click for lr_event.

gr_table->set_screen_status(pfstatus = ‘Z_YY_SALV_STANDARD’report = sy-repidset_functions = gr_table->c_functions_all ).

gr_columns = gr_table->get_Columns( ). gr_column ?= gr_columns->get_column(‘EXCEPTION’).

gr_columns->set_exception_column(‘EXCEPTION’). gr_column->set_short_text(‘MY EXCEPT’).

data gr_functional_settings TYPE REF TO cl_salv_functional_settings. gr_functional_settings = gr_table->get_functional_settings( ).

data gr_tooltips type REF TO cl_salv_tooltips.

gr_tooltips = gr_functional_settings->get_tooltips( ). gr_tooltips->add_tooltip( type = cl_salv_tooltip=>c_type_exception value = ‘1’ tooltip = ‘11111’).

gr_tooltips->add_tooltip( type = cl_salv_tooltip=>c_type_exception value = '2' tooltip = '2222'). gr_tooltips->add_tooltip( type = cl_salv_tooltip=>c_type_exception value = '3' tooltip = '33333').

gr_column ?= gr_columns->get_column(‘ICON’). gr_column->set_icon( if_salv_c_bool_sap=>true ). gr_column->set_long_text(‘ICON’).

gr_table->display( ).

FORM fresh.

select a~LIFNR a~Name1 a~Regio b~BUKRS c~EKORG into TABLE gt_VendorList from LFA1 as a INNER JOIN LFB1 as b on a~LIFNR = b~LIFNR "and a~MANDT = b~MANDT INNER JOIN LFM1 as c on a~LIFNR = c~LIFNR "and a~MANDT = c~MANDT where b~BUKRS = pBUKRS and c~EKORG = pEKORG

.

gr_table->refresh( ).

ENDFORM.

最新回复(0)