доброго времени суток!
прошу помощи у гуру SAPа
создаю ALV отчет в котором вывожу данные из структур ANEPV-ANBTR и ANLCV-ANSW_GJE
искомые значения выводятся верно для каждой позиции
проблема заключается в отдельном выводе итоговых сумм отчета: верно выводится только суммы значений из структуры ANEPV-ANBTR.
итоговые суммы из ANLCV-ANSW_GJE не совпадают и превышают верные результаты в разы
данные для обоих полей выводятся из одного и того же блока как для простого отчета так и для итогов а результат верен только для ANBTR
все перерыл уже. делаю по подобным примерам и описываю данные как в работоспособных отчетах.
описываю искомые во внутренней таблице
Code:
DATA: BEGIN OF x ,
answ LIKE anlcv-answ_gje,
anbtr LIKE anepv-anbtr,
END OF x.
прописываю в SO
Цитата:
SELECTION-SCREEN BEGIN OF BLOCK bl1
WITH FRAME
TITLE text-bl1.
PARAMETERS pa_ch_d AS CHECKBOX.
SELECT-OPTIONS:
so_ktanw FOR anlav-ktansw NO DATABASE SELECTION,
so_aktiv FOR anlav-aktiv,
so_answ FOR x-answ NO-DISPLAY,
so_anbtr FOR x-anbtr NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK bl1.
описываю структуры
Цитата:
GET anlcv.
CHECK SELECT-OPTIONS.
x-answ = anlcv-answ_gje. " Первоначальная стоимость на начало года нарастающим итогом
CHECK x-answ in SO_ANSW.
PERFORM sort_felder_vorbereiten.
itab_data-btr2 = x-answ.
GET anepv.
CHECK SELECT-OPTIONS.
x-anbtr = anepv-anbtr. " Сумма проводки поступления
CHECK x-anbtr in SO_ANBTR.
PERFORM sort_felder_vorbereiten.
*
MOVE-CORRESPONDING anlav TO itab_data.
MOVE-CORRESPONDING anlb TO itab_data.
MOVE-CORRESPONDING anek TO itab_data.
* Die 3 Wertfelder zur Ausgabe
itab_data-btr1 = x-anbtr.
itab_data-waers = sav_waer1.
itab_data-flg_pick_up = 'X'.
itab_data-range = 1.
itab_data-hlp_level = con_srtst.
IF summb ne space. " Условие вывода итоговой суммы
PERFORM zhashsum_collection USING itab_data.
ELSE.
APPEND ITAB_DATA.
ENDIF.
END-OF-SELECTION.
FORM zhashsum_collection
Цитата:
FORM zhashsum_collection USING value(line) LIKE itab_data.
MOVE-CORRESPONDING line TO sumline.
COLLECT sumline INTO sumtab_data.
ENDFORM.
вывод если выбран отчет с итогами
Цитата:
PERFORM summentabelle_aufbauen.
PERFORM init_fieldcat_sum.
CALL FUNCTION 'ZFIAA_ALV_DISPLAY'
EXPORTING
use_alv_grid = p_grid
variante = p_vari
tabname_header = 'SUMTAB_DATA_S'
summen_bericht = summb
x_t086 = t086
tcollect = tcollect
TABLES
itab_header = sumtab_data_s[]
bukrs = bukrs[]
sortfeld = feld[]
itab_errors = gt_anfm[].
ENDIF.
описание что нужно выводить в итогах
Цитата:
FORM init_fieldcat_sum.
* Pflichtteil!
PERFORM fieldcat_s_fields_define USING 'SUMTAB_DATA_S'.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'TEXT'.
x_fieldcat-seltext_l = text-004.
x_fieldcat-reptext_ddic = text-004.
x_fieldcat-tabname = 'SUMTAB_DATA_S'.
x_fieldcat-outputlen = 30.
CALL FUNCTION 'ZFIAA_FIELDCAT_ADD_FIELD'
EXPORTING
fieldcat_line = x_fieldcat.
CALL FUNCTION 'ZFIAA_FIELDCAT_ADD_BTR'
EXPORTING
num = 2
text = text-w02
tabname = 'SUMTAB_DATA_S'.
CALL FUNCTION 'ZFIAA_FIELDCAT_ADD_BTR'
EXPORTING
num = 1
text = text-w01
tabname = 'SUMTAB_DATA_S'.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'WAERS'.
x_fieldcat-tabname = 'SUMTAB_DATA_S'.
x_fieldcat-ref_tabname = 'T093B'.
CALL FUNCTION 'ZFIAA_FIELDCAT_ADD_FIELD'
EXPORTING
fieldcat_line = x_fieldcat.
ENDFORM.
подскажите почему при одинаковом описании одно работает а со вторым беда
буду благодарен за любую помощь или совет
заранее благодарен