&---------------------------------------------------------------------
*& 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-repid
- set_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.