Web Report Designer - как программно загрузить дерево таблиц с SQL Server
-
- Сообщения: 53
- Зарегистрирован: 11 июн 2010, 11:14
Web Report Designer - как программно загрузить дерево таблиц с SQL Server
Web Report Designer 2010.1
VB.Net
Идея: дать пользователю словарь с фиксированной структурой и запретить редактирование, чтоб исключить соблазн испортить словарь.
Как программно загрузить дерево таблиц со связями из SQL Server?
Детали:
При создании нового отчета в дизайнере, или открытии существующего, нужно показывать в словаре полный список доступных таблиц с Relations, по аналогии с Business Objects, чтоб пользователь не создавал источники данных ручками.
Структура со всеми связями и вложенными таблицами красиво отображается когда загрузка данных идет через XML, но при загрузке через StiSqlSource у меня не получается одним вызовом загрузить всю структуру таблиц и связей между таблицами.
Идеально было-бы:
Dim MyReport_DS As New StiSqlSource( ' Здесь определить полное дерево таблиц со связями
MyReport.Dictionary.DataSources.Add(MyReport_DS) ' Здесь загрузить это самое дерево таблиц со связями
Спасибо.
VB.Net
Идея: дать пользователю словарь с фиксированной структурой и запретить редактирование, чтоб исключить соблазн испортить словарь.
Как программно загрузить дерево таблиц со связями из SQL Server?
Детали:
При создании нового отчета в дизайнере, или открытии существующего, нужно показывать в словаре полный список доступных таблиц с Relations, по аналогии с Business Objects, чтоб пользователь не создавал источники данных ручками.
Структура со всеми связями и вложенными таблицами красиво отображается когда загрузка данных идет через XML, но при загрузке через StiSqlSource у меня не получается одним вызовом загрузить всю структуру таблиц и связей между таблицами.
Идеально было-бы:
Dim MyReport_DS As New StiSqlSource( ' Здесь определить полное дерево таблиц со связями
MyReport.Dictionary.DataSources.Add(MyReport_DS) ' Здесь загрузить это самое дерево таблиц со связями
Спасибо.
Web Report Designer - как программно загрузить дерево таблиц с SQL Server
Здравствуйте,
Вы всё верно описали, приведя правильный код. После этого остаётся только вызвать дизайнер отчётов:
Для того, что бы запретить редактировать словарь данных, используйте указанную статическую опцию:
Спасибо.
Вы всё верно описали, приведя правильный код. После этого остаётся только вызвать дизайнер отчётов:
Код: Выделить всё
StiWebDesigner1.Design(MyReport)
Для того, что бы запретить редактировать словарь данных, используйте указанную статическую опцию:
Код: Выделить всё
StiWebDesignerOptions.ModifyDictionary = false
Web Report Designer - как программно загрузить дерево таблиц с SQL Server
Здравствуйте,
Вы всё верно описали, приведя правильный код. После загрузки словаря данных в отчёт (любым способом), остаётся только вызвать дизайнер отчётов:
Для того, что бы запретить редактировать словарь данных, используйте указанную статическую опцию:
Спасибо.
Вы всё верно описали, приведя правильный код. После загрузки словаря данных в отчёт (любым способом), остаётся только вызвать дизайнер отчётов:
Код: Выделить всё
StiWebDesigner1.Design(MyReport)
Для того, что бы запретить редактировать словарь данных, используйте указанную статическую опцию:
Код: Выделить всё
StiWebDesignerOptions.ModifyDictionary = false
-
- Сообщения: 53
- Зарегистрирован: 11 июн 2010, 11:14
Web Report Designer - как программно загрузить дерево таблиц с SQL Server
Спасибо за скорый ответ.
С таким вызовом у меня получается добавить только одну таблицу:
Например:
Dim MyReport_DS As New StiSqlSource("EazyQA_Aces", "Tickets", "Tickets", "SELECT * FROM dbo.V_QA_Tickets", True, False)
MyReport.Dictionary.DataSources.Add(MyReport_DS)
А как мне в этом вызове добавить группу таблиц вместе со связями (relations)?
Спасибо
С таким вызовом у меня получается добавить только одну таблицу:
Например:
Dim MyReport_DS As New StiSqlSource("EazyQA_Aces", "Tickets", "Tickets", "SELECT * FROM dbo.V_QA_Tickets", True, False)
MyReport.Dictionary.DataSources.Add(MyReport_DS)
А как мне в этом вызове добавить группу таблиц вместе со связями (relations)?
Спасибо
Web Report Designer - как программно загрузить дерево таблиц с SQL Server
Здравствуйте,
Таблицы:
Колонки:
Связи:
Спасибо.
Таблицы:
Код: Выделить всё
Dim report As New StiReport()
StiWebDesignerOptions.ModifyDictionary = False
Dim reportDS_Products As New StiSqlSource("SQL", "Products", "Products", "SELECT * FROM Products", True, False)
Dim reportDS_Categories As New StiSqlSource("SQL", "Categories", "Categories", "SELECT * FROM Categories", True, False)
Код: Выделить всё
For Each col As DataColumn In dtProducts.Columns
reportDS_Products.Columns.Add(col.ColumnName, col.DataType)
Next
For Each col As DataColumn In dtCategories.Columns
reportDS_Categories.Columns.Add(col.ColumnName, col.DataType)
Next
Код: Выделить всё
Dim dataRelation As New StiDataRelation("MyRelation", report.Dictionary.DataSources("Categories"), report.Dictionary.DataSources("Products"), New System.String() {"CategoryID"}, New System.String(){"CategoryID"})
report.Dictionary.RegRelations()
report.Dictionary.Relations.Add(dataRelation)
-
- Сообщения: 53
- Зарегистрирован: 11 июн 2010, 11:14
Web Report Designer - как программно загрузить дерево таблиц с SQL Server
Ага, работает, спасибо.