Wyprowadzenie do ALV a układy

Jeśli programujesz, administrujesz, integrujesz i masz wątpliwość lub obawę, to właśnie najlepsze miejsce dla Ciebie. Pisz śmiało...
ODPOWIEDZ
piwowart
Posty: 8
Rejestracja: czw sty 11, 2018 12:45 pm
Has thanked: 1 time
Been thanked: 3 times

Wyprowadzenie do ALV a układy

Post autor: piwowart »

Witam

Wie ktoś jak skonfigurować wyprowadzenie danych do ALV aby można było zapisywać układy?
Zazwyczaj jak robię jakiś nowy raport to cały kod wrzucam do SQ02 i tam wyprowadzenie do ALV robi się samo (łącznie z późniejsza możliwością zapisywania układów).
Jednak mam jeden raport w systemie, który nie przechodzi przez SQ02.
Jest to raport z którego można wklikiwać się do dokumentów.
Przerobiłem go sobie abym mógł kiedyś zrobić coś podobnego.
Tam ALV jest wywoływane przez poniższy kawałek kodu.
Jednak nie mam pojęcia jak ustawić by była możliwość zapisywania układów.
W załączeniu cały kod


TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = r_alv
CHANGING
t_table = gt_lista
.
r_events_table = r_alv->get_event( ).
CREATE OBJECT r_ev_handler.
SET HANDLER r_ev_handler->on_link_click FOR r_events_table.
PERFORM alv_set_up USING r_alv.
r_alv->display( ).
CATCH cx_salv_msg .
ENDTRY.


FORM alv_set_up USING pr_alv TYPE REF TO cl_salv_table.
DATA: lr_columns_table TYPE REF TO cl_salv_columns_table,
lr_column_table TYPE REF TO cl_salv_column_table,
lr_functions_list TYPE REF TO cl_salv_functions_list,
lr_layout TYPE REF TO cl_salv_layout,
lr_display_settings TYPE REF TO cl_salv_display_settings.
DATA: lv_long_txt TYPE scrtext_l,
lv_medium_txt TYPE scrtext_m,
lv_short_txt TYPE scrtext_s,
ls_layout_key TYPE salv_s_layout_key,
ls_color TYPE lvc_s_colo,
lv_lines TYPE i,
lv_lines_char(10),
lv_title TYPE lvc_title.
*--------------------------------------------------------------------*
*Display settings
lr_display_settings = pr_alv->get_display_settings( ).
DESCRIBE TABLE gt_lista LINES lv_lines.
WRITE lv_lines TO lv_lines_char.
CONCATENATE 'Liczba odczytanych fiszek:'
lv_lines_char
INTO lv_title SEPARATED BY space.
lr_display_settings->set_list_header( lv_title ).
*Layout
lr_layout = pr_alv->get_layout( ).
ls_layout_key-report = sy-cprog.
lr_layout->set_key( ls_layout_key ).
*Functions
lr_functions_list = pr_alv->get_functions( ).
lr_functions_list->set_all( ).
*Columns
lr_columns_table = pr_alv->get_columns( ).
lr_columns_table->set_optimize( 'X' ).
lr_columns_table->set_key_fixation( ).
*----
*->BELNR
TRY .
lr_column_table ?= lr_columns_table->get_column( 'BELNR' ).
lr_column_table->set_cell_type( 5 ).
lr_column_table->set_key( ).
CATCH cx_salv_not_found.
ENDTRY.
*->BUKRS
TRY .
lr_column_table ?= lr_columns_table->get_column( 'BUKRS' ).
lv_long_txt = 'JG'.
lv_medium_txt = 'JG'.
lv_short_txt = 'JG'.
lr_column_table->set_long_text( lv_long_txt ).
lr_column_table->set_medium_text( lv_medium_txt ).
lr_column_table->set_short_text( lv_short_txt ).
lr_column_table->set_cell_type( 5 ).
ls_color-col = 3.
lr_column_table->set_color( ls_color ).
CATCH cx_salv_not_found.
ENDTRY.
*->GJAHR
TRY .
lr_column_table ?= lr_columns_table->get_column( 'GJAHR' ).
lv_long_txt = 'rok'.
lv_medium_txt = 'rok'.
lv_short_txt = 'rok'.
lr_column_table->set_long_text( lv_long_txt ).
lr_column_table->set_medium_text( lv_medium_txt ).
lr_column_table->set_short_text( lv_short_txt ).
CATCH cx_salv_not_found.
ENDTRY.




ENDFORM. " ALV_SET_UP
Załączniki
alv.docx
(16.45 KiB) Pobrany 25 razy
yacol
Posty: 561
Rejestracja: śr kwie 04, 2007 4:32 pm
Lokalizacja: Poznań
Has thanked: 9 times
Been thanked: 165 times
Kontakt:

Re: Wyprowadzenie do ALV a układy

Post autor: yacol »

Przykładowy program nazywa się SALV_DEMO_TABLE_LAYOUT. Wujcio Google najlepszym przyjacielem...
Pozdrawiam,

Jacek Witczak
http://novertio.pl
piwowart
Posty: 8
Rejestracja: czw sty 11, 2018 12:45 pm
Has thanked: 1 time
Been thanked: 3 times

Re: Wyprowadzenie do ALV a układy

Post autor: piwowart »

Tak w tym SALV_DEMO_TABLE_LAYOUT jest wszystko.

Jest to dosyć zawiłe i nie do końca wszystko czuje, ale metodą prób i błędów udało mi się skopiować część dotyczącą zapisywania układów :)

Wielkie dzięki
ODPOWIEDZ