Тип Шаблон Отчёт
Excel Скачать шаблон Скачать отчёт
Создать этот пример Выберите шаблон и создайте новый отчёт с помощью демонстрационного сервиса.

xtt->merge( iv_block_name = 'R' is_block =

JSON
{"C":[{"MON":"01","MON_NAME":"January","ROW_FIELD":"{R-T:v-T_SUMS[ 1 ]-SUM;type=double}"},{"MON":"02","MON_NAME":"February","ROW_FIELD":"{R-T:v-T_SUMS[ 2 ]-SUM;type=double}"},{"MON":"03","MON_NAME":"March","ROW_FIELD":"{R-T:v-T_SUMS[ 3 ]-SUM;type=double}"},{"MON":"04","MON_NAME":"April","ROW_FIELD":"{R-T:v-T_SUMS[ 4 ]-SUM;type=double}"},{"MON":"05","MON_NAME":"May","ROW_FIELD":"{R-T:v-T_SUMS[ 5 ]-SUM;type=double}"},{"MON":"06","MON_NAME":"June","ROW_FIELD":"{R-T:v-T_SUMS[ 6 ]-SUM;type=double}"},{"MON":"07","MON_NAME":"July","ROW_FIELD":"{R-T:v-T_SUMS[ 7 ]-SUM;type=double}"},{"MON":"08","MON_NAME":"August","ROW_FIELD":"{R-T:v-T_SUMS[ 8 ]-SUM;type=double}"},{"MON":"09","MON_NAME":"September","ROW_FIELD":"{R-T:v-T_SUMS[ 9 ]-SUM;type=double}"},{"MON":"10","MON_NAME":"October","ROW_FIELD":"{R-T:v-T_SUMS[ 10 ]-SUM;type=double}"},{"MON":"11","MON_NAME":"November","ROW_FIELD":"{R-T:v-T_SUMS[ 11 ]-SUM;type=double}"},{"MON":"12","MON_NAME":"December","ROW_FIELD":"{R-T:v-T_SUMS[ 12 ]-SUM;type=double}"},{"MON":"01","MON_NAME":"January","ROW_FIELD":"{R-T:v-T_SUMS[ 13 ]-SUM;type=double}"},{"MON":"02","MON_NAME":"February","ROW_FIELD":"{R-T:v-T_SUMS[ 14 ]-SUM;type=double}"},{"MON":"03","MON_NAME":"March","ROW_FIELD":"{R-T:v-T_SUMS[ 15 ]-SUM;type=double}"},{"MON":"04","MON_NAME":"April","ROW_FIELD":"{R-T:v-T_SUMS[ 16 ]-SUM;type=double}"},{"MON":"05","MON_NAME":"May","ROW_FIELD":"{R-T:v-T_SUMS[ 17 ]-SUM;type=double}"},{"MON":"06","MON_NAME":"June","ROW_FIELD":"{R-T:v-T_SUMS[ 18 ]-SUM;type=double}"},{"MON":"07","MON_NAME":"July","ROW_FIELD":"{R-T:v-T_SUMS[ 19 ]-SUM;type=double}"},{"MON":"08","MON_NAME":"August","ROW_FIELD":"{R-T:v-T_SUMS[ 20 ]-SUM;type=double}"},{"MON":"09","MON_NAME":"September","ROW_FIELD":"{R-T:v-T_SUMS[ 21 ]-SUM;type=double}"},{"MON":"10","MON_NAME":"October","ROW_FIELD":"{R-T:v-T_SUMS[ 22 ]-SUM;type=double}"},{"MON":"11","MON_NAME":"November","ROW_FIELD":"{R-T:v-T_SUMS[ 23 ]-SUM;type=double}"},{"MON":"12","MON_NAME":"December","ROW_FIELD":"{R-T:v-T_SUMS[ 24 ]-SUM;type=double}"},{"MON":"01","MON_NAME":"January","ROW_FIELD":"{R-T:v-T_SUMS[ 25 ]-SUM;type=double}"},{"MON":"02","MON_NAME":"February","ROW_FIELD":"{R-T:v-T_SUMS[ 26 ]-SUM;type=double}"},{"MON":"03","MON_NAME":"March","ROW_FIELD":"{R-T:v-T_SUMS[ 27 ]-SUM;type=double}"},{"MON":"04","MON_NAME":"April","ROW_FIELD":"{R-T:v-T_SUMS[ 28 ]-SUM;type=double}"},{"MON":"05","MON_NAME":"May","ROW_FIELD":"{R-T:v-T_SUMS[ 29 ]-SUM;type=double}"},{"MON":"06","MON_NAME":"June","ROW_FIELD":"{R-T:v-T_SUMS[ 30 ]-SUM;type=double}"},{"MON":"07","MON_NAME":"July","ROW_FIELD":"{R-T:v-T_SUMS[ 31 ]-SUM;type=double}"},{"MON":"08","MON_NAME":"August","ROW_FIELD":"{R-T:v-T_SUMS[ 32 ]-SUM;type=double}"},{"MON":"09","MON_NAME":"September","ROW_FIELD":"{R-T:v-T_SUMS[ 33 ]-SUM;type=double}"},{"MON":"10","MON_NAME":"October","ROW_FIELD":"{R-T:v-T_SUMS[ 34 ]-SUM;type=double}"},{"MON":"11","MON_NAME":"November","ROW_FIELD":"{R-T:v-T_SUMS[ 35 ]-SUM;type=double}"},{"MON":"12","MON_NAME":"December","ROW_FIELD":"{R-T:v-T_SUMS[ 36 ]-SUM;type=double}"}],"T":[{"GROUP":"GRP A","CAPTION":"<Caption 1 />","DATE":"2020-10-21","T_SUMS":[{"SUM":5971.44},{"SUM":5021.46},{"SUM":2276.75},{"SUM":7717.2},{"SUM":3031.38},{"SUM":445.22},{"SUM":9476.79},{"SUM":3683.27},{"SUM":4604.0},{"SUM":5525.85},{"SUM":2159.71},{"SUM":2260.94},{"SUM":2490.3},{"SUM":6388.81},{"SUM":5476.81},{"SUM":406.18},{"SUM":689.66},{"SUM":518.6},{"SUM":5451.87},{"SUM":4061.85},{"SUM":4573.55},{"SUM":5436.0},{"SUM":1196.35},{"SUM":522.46},{"SUM":7686.95},{"SUM":2727.98},{"SUM":978.18},{"SUM":295.55},{"SUM":71.12},{"SUM":8878.56},{"SUM":2455.26},{"SUM":1543.67},{"SUM":6686.29},{"SUM":2989.49},{"SUM":3153.9},{"SUM":9291.25}]},{"GROUP":"GRP C","CAPTION":"<Caption 2 />","DATE":"2020-10-19","T_SUMS":[{"SUM":5319.8},{"SUM":3945.94},{"SUM":6810.78},{"SUM":3751.68},{"SUM":1976.49},{"SUM":9851.72},{"SUM":7149.19},{"SUM":4226.41},{"SUM":8194.6},{"SUM":4285.88},{"SUM":4168.96},{"SUM":6181.78},{"SUM":6419.92},{"SUM":1093.71},{"SUM":4047.18},{"SUM":971.33},{"SUM":5008.78},{"SUM":7833.37},{"SUM":9582.6},{"SUM":1568.08},{"SUM":840.79},{"SUM":8105.44},{"SUM":5503.59},{"SUM":6401.6},{"SUM":1805.33},{"SUM":1863.13},{"SUM":1958.04},{"SUM":3420.09},{"SUM":1751.07},{"SUM":8027.96},{"SUM":1006.38},{"SUM":6191.29},{"SUM":5946.87},{"SUM":5215.51},{"SUM":3048.93},{"SUM":1900.44}]},{"GROUP":"GRP B","CAPTION":"<Caption 3 />","DATE":"2020-10-20","T_SUMS":[{"SUM":4360.52},{"SUM":2019.88},{"SUM":3968.83},{"SUM":7908.45},{"SUM":1519.96},{"SUM":256.61},{"SUM":3345.29},{"SUM":1590.73},{"SUM":6616.28},{"SUM":6230.11},{"SUM":2450.52},{"SUM":1445.41},{"SUM":9218.16},{"SUM":3546.34},{"SUM":5457.95},{"SUM":4288.14},{"SUM":1413.83},{"SUM":2935.33},{"SUM":1561.86},{"SUM":8070.23},{"SUM":5606.64},{"SUM":6501.99},{"SUM":8239.11},{"SUM":6687.27},{"SUM":1050.68},{"SUM":6730.82},{"SUM":733.04},{"SUM":502.59},{"SUM":2943.88},{"SUM":212.8},{"SUM":5736.85},{"SUM":4149.62},{"SUM":8539.78},{"SUM":354.08},{"SUM":2998.55},{"SUM":69.43}]},{"GROUP":"GRP A","CAPTION":"<Caption 4 />","DATE":"2020-10-21","T_SUMS":[{"SUM":196.5},{"SUM":6381.04},{"SUM":6323.48},{"SUM":5844.18},{"SUM":9354.17},{"SUM":6228.92},{"SUM":308.41},{"SUM":1424.67},{"SUM":6309.25},{"SUM":9286.03},{"SUM":2774.49},{"SUM":8028.99},{"SUM":7638.56},{"SUM":510.96},{"SUM":1625.8},{"SUM":7902.67},{"SUM":1882.74},{"SUM":1516.84},{"SUM":9091.83},{"SUM":4523.3},{"SUM":7121.26},{"SUM":4156.28},{"SUM":5404.98},{"SUM":2469.62},{"SUM":5598.92},{"SUM":3059.11},{"SUM":5544.26},{"SUM":2571.89},{"SUM":4444.04},{"SUM":7278.26},{"SUM":8482.85},{"SUM":8359.24},{"SUM":911.9},{"SUM":6825.27},{"SUM":1701.94},{"SUM":1094.11}]},{"GROUP":"GRP A","CAPTION":"<Caption 5 />","DATE":"2020-10-21","T_SUMS":[{"SUM":1679.86},{"SUM":6866.06},{"SUM":8514.74},{"SUM":6922.2},{"SUM":8636.84},{"SUM":3287.89},{"SUM":3382.06},{"SUM":6498.82},{"SUM":940.2},{"SUM":1683.9},{"SUM":216.42},{"SUM":5069.12},{"SUM":5147.76},{"SUM":6180.36},{"SUM":6680.86},{"SUM":599.85},{"SUM":3237.63},{"SUM":3551.16},{"SUM":7991.29},{"SUM":6542.59},{"SUM":9442.39},{"SUM":7531.51},{"SUM":8704.99},{"SUM":1779.31},{"SUM":96.99},{"SUM":5389.07},{"SUM":6050.15},{"SUM":5204.36},{"SUM":6133.92},{"SUM":2782.83},{"SUM":2627.58},{"SUM":247.82},{"SUM":7572.17},{"SUM":1915.44},{"SUM":6187.87},{"SUM":61.48}]},{"GROUP":"GRP C","CAPTION":"<Caption 6 />","DATE":"2020-10-19","T_SUMS":[{"SUM":1833.46},{"SUM":6201.19},{"SUM":7535.0},{"SUM":9440.18},{"SUM":3721.83},{"SUM":7879.74},{"SUM":7664.25},{"SUM":8711.87},{"SUM":9443.18},{"SUM":9783.95},{"SUM":8695.05},{"SUM":880.71},{"SUM":6902.2},{"SUM":5165.82},{"SUM":770.72},{"SUM":3816.54},{"SUM":9263.51},{"SUM":3490.91},{"SUM":9015.94},{"SUM":3709.54},{"SUM":8866.75},{"SUM":2585.43},{"SUM":7864.39},{"SUM":6622.07},{"SUM":5635.89},{"SUM":737.18},{"SUM":3238.85},{"SUM":3002.91},{"SUM":517.62},{"SUM":2536.31},{"SUM":4170.82},{"SUM":4171.44},{"SUM":4598.0},{"SUM":735.95},{"SUM":4699.4},{"SUM":2024.76}]},{"GROUP":"GRP B","CAPTION":"<Caption 7 />","DATE":"2020-10-20","T_SUMS":[{"SUM":1021.71},{"SUM":6652.11},{"SUM":5560.23},{"SUM":5886.63},{"SUM":6083.8},{"SUM":3624.64},{"SUM":6556.42},{"SUM":6078.95},{"SUM":6489.03},{"SUM":597.75},{"SUM":468.55},{"SUM":9831.38},{"SUM":4465.54},{"SUM":7627.47},{"SUM":899.33},{"SUM":5586.29},{"SUM":8929.96},{"SUM":3073.61},{"SUM":9806.99},{"SUM":8076.02},{"SUM":848.15},{"SUM":6855.56},{"SUM":3848.13},{"SUM":5718.01},{"SUM":2328.27},{"SUM":7504.74},{"SUM":4652.99},{"SUM":6710.99},{"SUM":3951.29},{"SUM":3369.97},{"SUM":9874.34},{"SUM":9035.85},{"SUM":8874.69},{"SUM":7455.23},{"SUM":4687.44},{"SUM":3023.71}]},{"GROUP":"GRP A","CAPTION":"<Caption 8 />","DATE":"2020-10-21","T_SUMS":[{"SUM":1376.25},{"SUM":2373.48},{"SUM":9806.78},{"SUM":3125.07},{"SUM":2653.11},{"SUM":3579.86},{"SUM":5660.49},{"SUM":445.44},{"SUM":725.85},{"SUM":3597.2},{"SUM":3225.86},{"SUM":4017.85},{"SUM":5596.45},{"SUM":9651.27},{"SUM":1328.17},{"SUM":5192.55},{"SUM":565.16},{"SUM":1391.12},{"SUM":4848.89},{"SUM":2640.09},{"SUM":7418.4},{"SUM":7570.9},{"SUM":869.7},{"SUM":5356.0},{"SUM":4862.28},{"SUM":9156.16},{"SUM":801.32},{"SUM":7973.88},{"SUM":7335.05},{"SUM":5878.05},{"SUM":7870.87},{"SUM":1810.5},{"SUM":2629.67},{"SUM":3473.31},{"SUM":9753.25},{"SUM":261.27}]},{"GROUP":"GRP D","CAPTION":"<Caption 9 />","DATE":"2020-10-18","T_SUMS":[{"SUM":2833.96},{"SUM":4177.31},{"SUM":5936.86},{"SUM":2862.34},{"SUM":2843.13},{"SUM":7151.03},{"SUM":9836.03},{"SUM":5649.76},{"SUM":2608.8},{"SUM":9006.49},{"SUM":2091.4},{"SUM":9976.9},{"SUM":582.61},{"SUM":6702.17},{"SUM":691.92},{"SUM":3338.13},{"SUM":7482.08},{"SUM":1500.64},{"SUM":9672.0},{"SUM":9476.29},{"SUM":1726.68},{"SUM":4342.65},{"SUM":3776.15},{"SUM":567.95},{"SUM":5121.43},{"SUM":2913.0},{"SUM":4589.16},{"SUM":4992.84},{"SUM":7440.49},{"SUM":776.87},{"SUM":1871.5},{"SUM":1189.23},{"SUM":322.13},{"SUM":2188.15},{"SUM":676.48},{"SUM":4389.22}]},{"GROUP":"GRP C","CAPTION":"<Caption 10 />","DATE":"2020-10-19","T_SUMS":[{"SUM":3568.55},{"SUM":3302.33},{"SUM":3599.73},{"SUM":162.26},{"SUM":1842.25},{"SUM":6305.3},{"SUM":630.11},{"SUM":3946.07},{"SUM":9936.19},{"SUM":3539.22},{"SUM":7284.73},{"SUM":1226.97},{"SUM":7506.07},{"SUM":9359.41},{"SUM":7447.13},{"SUM":2805.1},{"SUM":5362.95},{"SUM":881.98},{"SUM":4548.72},{"SUM":7757.75},{"SUM":6756.06},{"SUM":1743.74},{"SUM":7281.55},{"SUM":9562.23},{"SUM":3623.06},{"SUM":2088.27},{"SUM":1869.43},{"SUM":1395.71},{"SUM":4740.31},{"SUM":1720.67},{"SUM":1186.25},{"SUM":5435.35},{"SUM":9072.75},{"SUM":2831.31},{"SUM":7803.8},{"SUM":1157.39}]},{"GROUP":"GRP D","CAPTION":"<Caption 11 />","DATE":"2020-10-18","T_SUMS":[{"SUM":4054.89},{"SUM":4900.07},{"SUM":9773.4},{"SUM":462.17},{"SUM":1190.37},{"SUM":7994.69},{"SUM":4648.0},{"SUM":2488.53},{"SUM":1756.37},{"SUM":5937.77},{"SUM":5260.2},{"SUM":1716.97},{"SUM":5501.97},{"SUM":9386.11},{"SUM":9954.98},{"SUM":8214.51},{"SUM":3147.76},{"SUM":2569.63},{"SUM":5864.76},{"SUM":8267.85},{"SUM":53.51},{"SUM":2866.49},{"SUM":5224.53},{"SUM":6260.55},{"SUM":2354.91},{"SUM":3581.15},{"SUM":9169.99},{"SUM":6054.52},{"SUM":6369.44},{"SUM":7574.85},{"SUM":8647.9},{"SUM":1554.11},{"SUM":7022.72},{"SUM":4951.27},{"SUM":7240.15},{"SUM":4176.69}]},{"GROUP":"GRP C","CAPTION":"<Caption 12 />","DATE":"2020-10-19","T_SUMS":[{"SUM":5682.72},{"SUM":1232.91},{"SUM":3603.21},{"SUM":5295.43},{"SUM":1375.79},{"SUM":5841.94},{"SUM":1662.02},{"SUM":2918.1},{"SUM":7737.42},{"SUM":8276.64},{"SUM":5736.4},{"SUM":401.33},{"SUM":4512.51},{"SUM":415.39},{"SUM":6083.35},{"SUM":2595.59},{"SUM":4770.26},{"SUM":4867.49},{"SUM":3182.67},{"SUM":2933.74},{"SUM":2837.76},{"SUM":9761.54},{"SUM":1073.21},{"SUM":1575.35},{"SUM":6662.51},{"SUM":2927.37},{"SUM":907.38},{"SUM":5191.03},{"SUM":8271.52},{"SUM":8194.59},{"SUM":9466.31},{"SUM":8021.8},{"SUM":6342.07},{"SUM":4334.31},{"SUM":448.43},{"SUM":16.24}]},{"GROUP":"GRP C","CAPTION":"<Caption 13 />","DATE":"2020-10-19","T_SUMS":[{"SUM":7199.41},{"SUM":3725.63},{"SUM":2017.2},{"SUM":5895.04},{"SUM":281.27},{"SUM":7793.08},{"SUM":750.4},{"SUM":8396.51},{"SUM":4086.5},{"SUM":6612.37},{"SUM":4810.36},{"SUM":2684.18},{"SUM":6422.72},{"SUM":4585.47},{"SUM":2752.43},{"SUM":9842.42},{"SUM":2548.13},{"SUM":5806.32},{"SUM":540.05},{"SUM":8843.19},{"SUM":3936.17},{"SUM":9340.81},{"SUM":8475.94},{"SUM":8276.6},{"SUM":8604.49},{"SUM":7342.28},{"SUM":4220.87},{"SUM":3402.24},{"SUM":312.43},{"SUM":1171.83},{"SUM":806.29},{"SUM":9468.54},{"SUM":6957.11},{"SUM":7117.79},{"SUM":5176.61},{"SUM":4393.0}]},{"GROUP":"GRP D","CAPTION":"<Caption 14 />","DATE":"2020-10-18","T_SUMS":[{"SUM":4338.14},{"SUM":6547.7},{"SUM":8413.18},{"SUM":4797.8},{"SUM":2317.66},{"SUM":8437.43},{"SUM":5996.69},{"SUM":5510.08},{"SUM":7032.77},{"SUM":1426.95},{"SUM":1875.96},{"SUM":2580.68},{"SUM":7209.25},{"SUM":4296.46},{"SUM":4997.19},{"SUM":7401.18},{"SUM":8729.14},{"SUM":7335.83},{"SUM":5531.14},{"SUM":4865.73},{"SUM":7971.58},{"SUM":4538.52},{"SUM":7031.38},{"SUM":8165.94},{"SUM":5014.85},{"SUM":5562.83},{"SUM":7040.22},{"SUM":1383.12},{"SUM":1240.99},{"SUM":8466.23},{"SUM":4119.69},{"SUM":3821.49},{"SUM":6342.87},{"SUM":7115.31},{"SUM":1190.06},{"SUM":3539.52}]},{"GROUP":"GRP D","CAPTION":"<Caption 15 />","DATE":"2020-10-18","T_SUMS":[{"SUM":2368.86},{"SUM":60.52},{"SUM":3428.81},{"SUM":1465.86},{"SUM":7838.65},{"SUM":4864.46},{"SUM":999.68},{"SUM":3918.93},{"SUM":93.52},{"SUM":4285.2},{"SUM":3438.55},{"SUM":6544.37},{"SUM":2733.5},{"SUM":474.62},{"SUM":5134.76},{"SUM":6783.55},{"SUM":1334.28},{"SUM":5908.11},{"SUM":987.94},{"SUM":7368.63},{"SUM":6027.33},{"SUM":4833.66},{"SUM":3593.51},{"SUM":7277.87},{"SUM":2937.21},{"SUM":3415.65},{"SUM":5136.33},{"SUM":5769.08},{"SUM":7453.89},{"SUM":8371.68},{"SUM":2052.39},{"SUM":8116.7},{"SUM":9072.83},{"SUM":4490.4},{"SUM":6743.33},{"SUM":2108.02}]}]}

).


Создать демо 092

Dynamic table (New syntax)

Предпросмотр запроса

Обзор

Обязательно ли суммам нужны отдельные поля SUM1, SUM2, SUM3? Если это уже список, можно оставить их во вложенной таблице.

Так устроено демо 092. ZCL_XTT_DEMO_092 создаёт столбцы Excel, ячейки которых читают записи из T_SUMS каждой строки. Шаблон - ZXXT_DEMO_092-XLSX.

Сохраните фиксированный тип строки

В демо 090 RTTS создаёт новые поля для запрошенных столбцов. Здесь к обычным полям строки добавляется таблица сумм:

TYPES:
  BEGIN OF ts_row.
    INCLUDE TYPE ts_no_sum AS _static.
TYPES:
    t_sums TYPE tt_sums_alv,
  END OF ts_row,
  tt_row TYPE STANDARD TABLE OF ts_row WITH DEFAULT KEY.

ts_no_sum и tt_sums_alv определены в инфраструктуре демо. Существенна сама форма: строка со вложенной таблицей, каждая запись которой содержит SUM.

Метаданные столбца описаны отдельно:

TYPES:
  BEGIN OF ts_column,
    mon       TYPE numc2,
    mon_name  TYPE string,
    row_field TYPE string,
  END OF ts_column,
  tt_column TYPE STANDARD TABLE OF ts_column WITH DEFAULT KEY.

ROW_FIELD хранит выражение для последующего прохода по строкам. Пока это не сумма.

Создайте выражение для ячейки

GET_COLUMNS получает названия месяцев через MONTH_NAMES_GET и формирует описание каждого столбца. В выражение подставляется индекс, начиная с единицы:

CONCATENATE `{R-T:v-T_SUMS[ ` lv_index ` ]-SUM;type=double}`
  INTO ls_column-row_field.
APPEND ls_column TO rt_column.

Для первого столбца получается:

{R-T:v-T_SUMS[ 1 ]-SUM;type=double}

Разберём по частям:

  • R-T задаёт контекст текущей строки.
  • v-T_SUMS[ 1 ]-SUM читает SUM из первой записи вложенной таблицы.
  • ;type=double задаёт числовой результат. Выражение ;cond= по умолчанию возвращает текст, а : - его сокращение.

Номер месяца циклически меняется от 1 до 12, индекс таблицы продолжает расти. При более чем двенадцати столбцах исходный код повторяет названия месяцев; год автоматически не добавляется.

Столбцы по-прежнему раньше строк

В корневой структуре C объявлен перед T:

TYPES:
  BEGIN OF ts_merge,
    c TYPE tt_column,
    t TYPE tt_row,
  END OF ts_merge.

DATA ls_merge TYPE ts_merge.
ls_merge-c = get_columns( ).

mo_report->get_random_table(
  EXPORTING iv_column_cnt = mo_report->mv_c_cnt
  IMPORTING et_table      = ls_merge-t ).

mo_report->merge_add_one( ls_merge ).

Шаблон разворачивает {R-C;direction=column} и размещает {R-C-ROW_FIELD} в каждом созданном столбце. Затем вставленные выражения вычисляются при повторении строк.

Корень теперь один, но порядок никуда не исчез. Если обработать строки раньше столбцов, нужных выражений ещё не будет на месте.

Согласуйте размеры данных

В каждой строке должна быть запись суммы для каждого столбца. Третий столбец читает T_SUMS[ 3 ], а не ищет сумму по бизнес-ключу или другому индексу.

Отсутствующая запись может вызвать исключение и вернуть начальное значение. Подробнее см. в разделе обработки выражений XTT. Сначала проверьте структуру данных: пустая ячейка сама по себе не объясняет причину.

Среда ABAP должна поддерживать табличные выражения в маркере. Если целевая система их не понимает, используйте динамически создаваемые поля демо 090. Повторение всей конструкции по листам показано в демо 091.