Страница 1 из 1

В источнике данных на основе источника данных невозможно использовать колонку из связи

Добавлено: 20 сен 2021, 15:49
Quirco
Добрый день,
В источнике данных DataSource2 (созданном на основе источника данных Лист1), невозможно использовать колонки из связи источника данных Лист1:
  1. Добавляем в источник данных Лист1 связь (Screenshot_1.jpg)
  2. Создаем источнике данных DataSource2 на основе Лист1 (Screenshot_2.jpg)
  3. В результаты добавляем сумму по колонке Name.price.Sum из связи родительского источника (Screenshot_3.jpg). Но проблема в том, что эта колонка не работает (в ней всегда 0 Screenshot_2.jpg)
Все файлы прикладываю во вложении.
Пожалуйста подскажите в чем дело. Спасибо.

Re: В источнике данных на основе источника данных невозможно использовать колонку из связи

Добавлено: 21 сен 2021, 21:32
Ivan
Здравствуйте.

Вы столкнулись с одной из особенностей нашего движка.
При построении отчёта подключение данных происходит в таком порядке:
- получаются данные из внешних источников (таблицы со связями между ними) и помещаются в один общий dataSet;
- рассчитываются виртуальные источники данных, и помещаются в этот же dataSet;
- в dataSet добавляются связи, которые были созданы в словаре вручную.
Связи добавляются в самом конце, когда уже созданы все таблицы. Это ограничение самого dataSet - связь можно добавить только между уже существующими таблицами.

В данном случае у вас задана связь между источником Excel и виртуальным источником DataSource1.
На момент расчёта виртуальных источников связи ещё не заданы, поэтому данные через связь получить невозможно, и DataSource2, который использует эту связь, рассчитывается некорректно.

Для решения данной проблемы можно поступить так: в событии BeginRender первой страницы отчёта можно написать такой скрипт:

Код: Выделить всё

Dictionary.ConnectVirtualDataSources();
Данный скрипт вызовет повторный перерасчёт виртуальных источников.
Т.к. на момент его работы все связи уже будут добавлены, то и DataSource2 рассчитается корректно.

Спасибо.

Re: В источнике данных на основе источника данных невозможно использовать колонку из связи

Добавлено: 22 сен 2021, 12:42
Quirco
Добрый день.
Добавил в BeginRender как Вы и написали, ничего не поменялось, подскажите пожалуйста в чем проблема. Не могли бы Вы показать это на моем примере (mrt в первом сообщении).

Re: В источнике данных на основе источника данных невозможно использовать колонку из связи

Добавлено: 22 сен 2021, 13:33
Aleksey
Здравствуйте,

Пожалуйста, уточните версию. Также, проверьте последний билд.

Спасибо.

Re: В источнике данных на основе источника данных невозможно использовать колонку из связи

Добавлено: 22 сен 2021, 14:48
Quirco
Добрый день. Спасибо большое, на новой версии все отработало.

Re: В источнике данных на основе источника данных невозможно использовать колонку из связи

Добавлено: 22 сен 2021, 15:45
Aleksey
Здравствуйте,

Отлично! Пожалуйста.