Связать 2 Dataset в одном отчете

Есть таблица расходов и есть таблица приходов. Каждая запись в каждой таблице относится к определенному контракту. Необходимо сделать отчет, строчкой которого является контракт (название), далее - вся сумма расходов, далее - вся сумма приходов, и далее - разница между приходами и расходами. Ну и конечно все это - за выбранный в фильтре период.
Отдельно и те, и те данные я получаю. Но при опытке вывести все это на экран (я беру еще третий Dataset - по таблице контрактов, MasterData делаю по Dataset "Контракты", и два DetailData - по расходам и приходам), я получаю строку с названием контракта, и с суммой расходов, а поле "приходы" - 0,00. Как быть в этом случае? И как можно вычислить разницу между приходами и расходами?

Нравится

7 комментариев

Наталия, здравствуйте!
А почему Вы все разбили на несколько запросов-датасетов? Вы не пробовали все одним запросом вытянуть? через колонки-подзапросы, например. Основная таблица -- контракты, подзвпросы -- это приходы/расходы.
для разницы можно уже в самом отчете формулу написать (приход-расход, т.е. поле прихода - поле расхода).
то, что у Вас получается 0, когда Вы сделали двумя датасетами, то все "верно", если смотреть на логику построения отчета. один мастердата -- для одного датасета (т.е. для второго все поля будут нулевыми, потому что они просто не считаются)

> А почему Вы все разбили на несколько запросов-датасетов?
Я новичок в TerraSoft, и такое решение мне предложил опытный коллега.
Спасибо. Попробую предложенным Вами способом.
Я так понимаю, что запрос надо делать таким образом, чтобы в каждой строке по контракту уже была бы сумма приходов/расходов?

"Наталия П." написал:
Я так понимаю, что запрос надо делать таким образом, чтобы в каждой строке по контракту уже была бы сумма приходов/расходов?

да, верно.
сначала 2 колонки для ИД и названия контракта, потом -- подзапрос для суммы приходов за период, потом -- подзапрос для суммы расходов за период.
а разница -- в самом отчете, либо вычисляемым полем в датасете.

Тогда такой вопрос - а как мне в подзапросах (я же правильно понимаю, что это будут SubSelect) корректно указать нужный диапазон данных?
Я ведь связываюсь с таблицей приходов (например) 2 раза - один раз в общем селекте для Dataset, второй раз в подзапросе. Мне нужно ограничить данные по датам (DateFrom, DateTo). В фильтре для отчета я указываю даты, но я выбираю эти даты из общего селекта, я не могу выбрать даты из подзапросов (они просто не показываются при выборе данных для фильтра).

Хотела добавить, что я использую стандартный фильтр для отчета.

Наталия, недавно реализовывала подобный отчет. Посмотрите сервисы во вложении.

Спасибо!

Показать все комментарии