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

Вывод данных поочередно с разных источников данных

Добавлено: 24 ноя 2017, 17:14
Ингвар
Есть источник данных 1, есть источник данных 2. У обоих источников есть колонка со временем.
Необходимо вывести в отчет из первого источника записи за сутки, затем из второго источника данных записи за эти же сутки, затем записи первого источника за следующие сутки, затем записи второго за следующие сутки и т.д.
Как можно решить такую задачу? То есть выводить поочередно записи из разных источников.

Re: Вывод данных поочередно с разных источников данных

Добавлено: 25 ноя 2017, 04:33
Edward
Здравствуйте, Ингвар.

Если источники данных из SQL Server, или другой подобной базы данных, то использование UNION ALL в одном источнике данных было бы самым простым решением.
Если возможно создать Relations между этими источниками, то проблема решаема без модификации структуры источников данных. Но Report.CacheAllData нужно установить в true, чтобы связи работали между источниками из разных подключений, в случае, если они находятся в разных файлах или базах данных.
Если вышеуказанные условия невыполнимы, то, к сожалению, я не вижу способа, как построить отчет простым образом.
Можно предложить использование скрипта с командами DataSourceX.Next() и проверкой DataSourceX.IsEof на то, что достигнута последняя строка данных, но это решение кажется довольно громоздким и сложным.

Спасибо,
Эд

Re: Вывод данных поочередно с разных источников данных

Добавлено: 27 ноя 2017, 13:20
Ингвар
Связь можно попробовать сделать, но единственным вариантом связи в таком случае - это связывание по дате. Причем колонка "Дата" может быть только рассчитываемой.
Можно так сделать? По документации не понял как делать отчеты со связью - можете подскзаать? Заготовка отчета с данными в приложении

Re: Вывод данных поочередно с разных источников данных

Добавлено: 29 ноя 2017, 10:02
Edward
Здравствуйте, Ингвар.

Да, верно, задача усложняется рассчитываемой колонкой 'Date', стало понятно из Вашего примера.
Если бы колонка была не рассчитываемой, то возможно было бы её использовать для построения отчета типа
Master - Detail - SubDetail (смотрите пример Demo.exe или Viewer.exe в последних версиях )
Здесь нужно было бы установить у отчета свойтсво CacheAllData = true, создать источник DataFromOtherSource для "1" источника в Вашем примере.

Спасибо,
Эд