Показать сообщение отдельно
Старый 12.06.2008, 14:33   #7  
KingPeas is offline
KingPeas
Участник
Аватар для KingPeas
 
163 / 35 (2) +++
Регистрация: 09.01.2007
Адрес: Россия, Новосибирск
Спасибо всем за активное участие, вот только ушли куда то в сторону от обсуждения)
Попробую все таки объяснить чего я добиваюсь. В VS сделал отчет, достаточно сложный с большим числом параметров. На исполнение он запускается с различным сочетанием этих параметров. В итоге идеально подходит механизм управляемых подписок используемый службой RS2005.
Для генерации отчетов по подписке используется таблица из аксапты. В ней хранятся все необходимые данные для запуска отчета. Все это уже отлажено и работает. Кстати вывод в аксапту тоже реализован через ReportViewer(все благодаря помощи на форуме, в том числе уважаемого belugin-а), но это только для случаев запуска одного, а не нескольких отчетов одновременно. Для заполнения подписок, а также для генерации отчетов используется наследник RunBase. Делал это с умыслом, пользователи получают знакомый интерфейс для генерации отчета (добавились только два поля в каком формате отчет, и сгенерировать его или добавить в подписку). Таким образом все отчеты которые переводим на RS изменяем свойство Extends на новый класс и перекрываем пару методов определяющие в какой параметр чего сохранять. Думаю еще переделаю, пока работает так.
Добавление в подписку сводится просто к добавлению записи в таблицу аксапты, которую использует RS2005 для обработки управляемых подписок.
Теперь непосредственно над чем я сейчас бьюсь). Нашел в AOT класс SRSProxy. Он через COM позволяет получить данные о сервере отчетов и список его элементов. Таким образом я могу получить такую информацию как список всех отчетов на сервере. Создал две таблицы:

Первая содержит связь между кодом класса (который добавляет данные в таблицу параметров подписки в аксапте) и путем к отчету(уникальный путь на RS2005) для которого создаются подписки в аксапте;
Вторая таблица должна содержать привязку между полями таблицы параметров подписки в аксапте и названиями параметров в самом отчете на RS2005.

Получаем этакую настроечную таблицу. Планирую что в дальнейшем потихоньку и другие отчеты будут перетаскиваться на RS. Таким образом пытаюсь получить хоть какую то гибкость в настройке связей между параметрами подписок в аксапте и параметрами в отчетах на RS.

И вот тут то и встает вопрос как мне получить список параметров отчета на RS2005? В документации по SQL BOL содержит несколько примеров для получения данных. Вот шаги которые я для себя уяснил:
1) Получить новый экземпляр ReportingService
2) Указать путь к серверу и права
3) Найти отчет
4) получить коллекцию параметров
5) перебрать параметры и получить нужную информацию.
Сколько не копался в сборках .NET не нашел ни одного метода как пройти даже первый шаг.
Так что надеюсь на вашу помощь.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ.