ALV

Jeśli programujesz, administrujesz, integrujesz i masz wątpliwość lub obawę, to właśnie najlepsze miejsce dla Ciebie. Pisz śmiało...
Flavio
Posty: 7
Rejestracja: śr kwie 04, 2007 1:06 pm

ALV

Post autor: Flavio »

hello
czy/jak można wyświetlić na liście ALV sumy pośrednie (subtotals)

jak można to zrobić przy użyciu REUSE_ALV_LIST_DISPLAY lub REUSE_ALV_GRID_DISPLAY?

to tyle, czekam ;)
lwojcik
Posty: 11
Rejestracja: pn kwie 30, 2007 1:45 pm

Post autor: lwojcik »

hej,
żeby dostać sumy pośrednie musisz zdefinowaś i przekazać modułowi funkcyjnemu REUSE_ALV_LIST_DISPLAY parametr /tabelkę wewnętrzną/ IT_SORT, który musi być typu SLIS_T_SORTINFO_ALV,

tabelka ta będzie zawierała rekordy, określające kolumny, po których ma być sortowana Twoja lista ALV,

jeżeli w danym rekordzie polu SUBTOT przypiszesz wartość 'X' to dla kolumny, której on dotyczny, zostaną utworzone na wyjściu raportu sumy pośrednie
pozdrawiam - Lukasz Wojcik - www.icg.pl
lwojcik
Posty: 11
Rejestracja: pn kwie 30, 2007 1:45 pm

Post autor: lwojcik »

przykład:
REPORT z_demo_alv_sort.

TABLES : vbak.
TYPE-POOLS: slis. " ALV Global types
SELECT-OPTIONS :
s_vkorg FOR vbak-vkorg, " Sales organization
s_kunnr FOR vbak-kunnr, " Sold-to party
s_vbeln FOR vbak-vbeln. " Sales document

SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.
PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
SELECTION-SCREEN END OF LINE.

DATA: BEGIN OF gt_vbak OCCURS 0,
vkorg LIKE vbak-vkorg, " Sales organization
kunnr LIKE vbak-kunnr, " Sold-to party
vbeln LIKE vbak-vbeln, " Sales document
netwr LIKE vbak-netwr, " Net Value of the Sales Order
waerk LIKE vbak-waerk, " Document currency

END OF gt_vbak.

*---------------------------------------------------------------------*

INITIALIZATION.
v_1 = 'Maximum of records to read'.


*---------------------------------------------------------------------*

START-OF-SELECTION.
PERFORM f_read_data.
PERFORM f_display_data.

*---------------------------------------------------------------------*

FORM f_read_data.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE gt_vbak
FROM vbak
UP TO p_max ROWS
WHERE
kunnr IN s_kunnr
AND vbeln IN s_vbeln
AND vkorg IN s_vkorg.
ENDFORM.

FORM f_display_data.
DEFINE m_fieldcat.
add 1 to ls_fieldcat-col_pos.
ls_fieldcat-fieldname = &1.
ls_fieldcat-ref_tabname = 'VBAK'.
ls_fieldcat-do_sum = &2.
ls_fieldcat-cfieldname = &3.
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.

DEFINE m_sort.
add 1 to ls_sort-spos.
ls_sort-fieldname = &1.
ls_sort-up = 'X'.
ls_sort-subtot = &2.
append ls_sort to lt_sort.
END-OF-DEFINITION.

DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv,
lt_sort TYPE slis_t_sortinfo_alv,
ls_sort TYPE slis_sortinfo_alv,
ls_layout TYPE slis_layout_alv.


m_fieldcat 'VKORG' '' ''.
m_fieldcat 'KUNNR' '' ''.
m_fieldcat 'VBELN' '' ''.
m_fieldcat 'NETWR' 'X' 'WAERK'.
m_fieldcat 'WAERK' '' ''.


m_sort 'VKORG' 'X'. " Sort by vkorg and subtotal
m_sort 'KUNNR' 'X'. " Sort by kunnr and subtotal
m_sort 'VBELN' ''. " Sort by vbeln


ls_layout-cell_merge = 'X'.


CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
TABLES
t_outtab = gt_vbak.

ENDFORM.
pozdrawiam - Lukasz Wojcik - www.icg.pl