salv 使用

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值