Alv CL Salv
Alv CL Salv
TYPES:BEGIN OF ty_saida,
vbeln TYPE zfit021-vbeln,
nsu TYPE zfit021-nsu,
belnr TYPE zfit021-belnr,
kunnr TYPE vbak-kunnr,
name1 TYPE kna1-name1,
xblnr TYPE vbrk-xblnr,
bukrs_vf TYPE vbak-bukrs_vf,
ernam TYPE vbrk-ernam,
useralias TYPE usrefus-useralias, "Alias do usuário
smtp_addr TYPE adr6-smtp_addr, " Usuario e-mail
END OF ty_saida.
INITIALIZATION.
PERFORM inicializa_campos_tela.
AT SELECTION-SCREEN.
PERFORM acoes_tela.
START-OF-SELECTION.
PERFORM select.
PERFORM exibir_alv.
*&---------------------------------------------------------------------*
*& Form montar_alv
*&---------------------------------------------------------------------*
FORM exibir_alv .
IF sy-subrc = 0.
cl_salv_table=>factory( IMPORTING r_salv_table = alv
CHANGING t_table = t_saida ).
* habilita botões
lr_functions = alv->get_functions( ).
lr_functions->set_all( 'X' ).
* Otimiza coluna
lr_columns = alv->get_columns( ).
lr_columns->set_optimize( 'X' ).
* Estilo zebra
gr_display = alv->get_display_settings( ).
gr_display->set_striped_pattern( cl_salv_display_settings=>true ).
* seleção de linha
lr_selections = alv->get_selections( ).
lr_selections->set_selection_mode( if_salv_c_selection_mode=>row_column ).
alv->display( ).
ENDIF.
*&---------------------------------------------------------------------*
*& Form select
*&---------------------------------------------------------------------*
FORM select.
lt_saida_aux = t_saida.
SORT lt_saida_aux BY belnr
kunnr
bukrs_vf.
*&---------------------------------------------------------------------*
*& Form NOMEAR_COLUNA
*&---------------------------------------------------------------------*
FORM editar_coluna USING column TYPE REF TO cl_salv_column
columns TYPE REF TO cl_salv_columns_table.
TRY.
column = columns->get_column( 'VBELN' ).
column->set_short_text( 'Ord Venda' ).
column->set_medium_text( 'Ordem de Venda' ).
column->set_long_text( 'Ordem de Venda' ).
*&---------------------------------------------------------------------*
*& Form INICIALIZA_CAMPOS_TELA
*&---------------------------------------------------------------------*
FORM inicializa_campos_tela .
*&---------------------------------------------------------------------*
*& Form ACOES_TELA
*&---------------------------------------------------------------------*
FORM acoes_tela .
IF p_chkbox IS INITIAL.
IF s_nsu[] IS INITIAL. " Ok, seleção NSU vazia
RETURN.
ENDIF.
READ TABLE s_nsu ASSIGNING <nsu> INDEX 1.
IF <nsu>+0(3) = 'IEQ'. " Seleção original vazia, pode excluir
REFRESH s_nsu.
ENDIF.
ELSE.
REFRESH s_nsu.
APPEND 'IEQ' TO s_nsu.
* LOOP AT SCREEN.
* IF screen-name CS 'S_NSU-LOW'.
* screen-input = 0.
** screen-invisible = 1.
** screen-active = 0.
* MODIFY SCREEN.
* ENDIF.
* ENDLOOP.
ENDIF.