Как сделать поддержку множественного результата ХП
Добавлено: 18 апр 2013, 12:09
Предыстория....
1.Стандартно при использовании в качестве источника данных на основе SQL соединения делается несколько запросов: DataSourceMain, DataSourceSecondary и так далее... - необходимо получить несколько наборов данных для формирования отчета.
2.Используя хранимую процедуру можно получить все результаты за один раз (что является намного более правильным и корректным )
3.Да стандартно отчеты не поддерживают множественные результаты - делаем отчеты в дизайнере и подсовываем результат выполнения ХП:
report.RegData("Document", doc.PrintHeader);
report.RegData("DocumentDetail", doc.PrintData);
- код получения и чтения данных из ХП находиться непосредственно в приложении - что при большом количестве отчетов усложняет общую работу, для построения отчетов приходится применять не универсальные механизмы работы с отчетной системой, а персонализированное получение и построение отчетов.
Подскажите, есть ли возможность заполнения источника данных непосредственно в самом отчете на основе дополнительно метода и как это лучше организовать?
Интересен вариант именно заполнения данных непосредственно используя механизмы отчетной системы - событие на которое можно и нужно подключаться в самом отчете с вызовом дополнительного метода, который выполнит подключение к базе и заполнит необходимые данные в источниках.
Понимаю, что вопрос выглядит несколько непонятным, но в идеале хотелось бы отказаться от стороннего использования кода в приложении, а перенести сам метод в отчет, т.е. в идеале что-то вроде:
1. Передаем в отчет данные о соединении - (это есть)
2. В самом отчете у нас имеется дополнительный метод, который выполняет указанную в нем ХП возвращающую несколько результатов и подсовывающий их в данные отчета
1.Стандартно при использовании в качестве источника данных на основе SQL соединения делается несколько запросов: DataSourceMain, DataSourceSecondary и так далее... - необходимо получить несколько наборов данных для формирования отчета.
2.Используя хранимую процедуру можно получить все результаты за один раз (что является намного более правильным и корректным )
3.Да стандартно отчеты не поддерживают множественные результаты - делаем отчеты в дизайнере и подсовываем результат выполнения ХП:
report.RegData("Document", doc.PrintHeader);
report.RegData("DocumentDetail", doc.PrintData);
- код получения и чтения данных из ХП находиться непосредственно в приложении - что при большом количестве отчетов усложняет общую работу, для построения отчетов приходится применять не универсальные механизмы работы с отчетной системой, а персонализированное получение и построение отчетов.
Подскажите, есть ли возможность заполнения источника данных непосредственно в самом отчете на основе дополнительно метода и как это лучше организовать?
Интересен вариант именно заполнения данных непосредственно используя механизмы отчетной системы - событие на которое можно и нужно подключаться в самом отчете с вызовом дополнительного метода, который выполнит подключение к базе и заполнит необходимые данные в источниках.
Понимаю, что вопрос выглядит несколько непонятным, но в идеале хотелось бы отказаться от стороннего использования кода в приложении, а перенести сам метод в отчет, т.е. в идеале что-то вроде:
1. Передаем в отчет данные о соединении - (это есть)
2. В самом отчете у нас имеется дополнительный метод, который выполняет указанную в нем ХП возвращающую несколько результатов и подсовывающий их в данные отчета