Работа с подчиненными запросами
Добрый день. Есть необходимость перенести печать отчетов (квитанций) с Delphi на C#. Для формирования отчета существует главный запрос и подчиненные, которые используют данные главного запроса. Если упростить, то первым запросом я отбираю список лицевых счетов, а во всех остальных различные данные для лицевых из списка. Естественно, на экране должен быть лицевой счет и его данные, потом следующий лицевой счет и его данные и т.д. Решила начать с простого. Создала в программе 3 DataTable, закинула их в DataSet, создала связи, зарегистрировала источник. Если я создаю 3 DataBand один под другим и у каждого задаю источник и прописываю связи, то все работает. Сложность в том, что данные, относящиеся к лицевому не расположены подряд, одни под другими, они могут располагаться как угодно. Когда я пытаюсь использовать 1 DataBand, то получаю что у каждого лицевого список параметров соответствует первому лицевому.
В Delphi эта проблема решалась так. Кидаешь на форму 3 компонента frxDBDataSet, у каждого в свойстве DataSet прописываешь свой Query, например, QMain,Q1,Q2. Кидаешь компонент DataSource, называешь его DSMain, привязываешь его к QMain. У подчиненных Query (Q1 и Q2) заполняешь свойство DataSource= DSMain. То есть говоришь, что у них источник - данные получаемые после выполнения QMain. В главном запросе пишешь что-то типа:
В отчете же, подключаешь все свои данные (frxDBDataSet), кидаешь один компонент MasterData, на него кидаешь все поля которые нужны, привязываешь его к fdxDBDataSet, который привязан к главному запросу(QMain). Все работает как надо.
Подскажите, пожалуйста, как такое сделать в FastReport.Net и возможно ли такое в принципе. Посмотрела документацию и интернет, но похожих примеров не нашла. .Может тоже какие-нибудь параметры следует прописать.
В Delphi эта проблема решалась так. Кидаешь на форму 3 компонента frxDBDataSet, у каждого в свойстве DataSet прописываешь свой Query, например, QMain,Q1,Q2. Кидаешь компонент DataSource, называешь его DSMain, привязываешь его к QMain. У подчиненных Query (Q1 и Q2) заполняешь свойство DataSource= DSMain. То есть говоришь, что у них источник - данные получаемые после выполнения QMain. В главном запросе пишешь что-то типа:
select id from TableMain
Это конечно очень условно. В подчиненных пишешь что-то типа.
select param from TableParam where id=:id
То есть поле id передается как параметр.В отчете же, подключаешь все свои данные (frxDBDataSet), кидаешь один компонент MasterData, на него кидаешь все поля которые нужны, привязываешь его к fdxDBDataSet, который привязан к главному запросу(QMain). Все работает как надо.
Подскажите, пожалуйста, как такое сделать в FastReport.Net и возможно ли такое в принципе. Посмотрела документацию и интернет, но похожих примеров не нашла. .Может тоже какие-нибудь параметры следует прописать.
Комментарии
Где id=001 выбирается в результате главного запроса, список услуг в результате второго запроса, подчиненного главному, показания это третий запрос, а строка с итогами - четвертый запрос. Разве это можно сделать с помощью DetailData?