Страница 2 из 2
VB.Net - соединение к MS SQL Server вместо XML
Добавлено: 31 авг 2010, 13:52
Vasiliy Goncharenko
Для Web вам нужно еще использовать событие GetPreviewDataSet(), в котором заполнять датасет:
Добавил.
Теперь при переходе на Preview не пустая страница, а не генерится страница совсем, т.е. пустое окно дизайнера.
Вот мой код:
Код: Выделить всё
Protected Sub StiWebDesigner1_GetPreviewDataSet1(ByVal sender As Object, ByVal e As Stimulsoft.Report.Web.StiWebDesigner.StiPreviewDataSetEventArgs) Handles StiWebDesigner1.GetPreviewDataSet
Dim MyDB_DS As DataSet = SC.SCData.FillDataSet("SELECT * FROM Users SELECT * FROM V_QA_Tickets SELECT * FROM V_QA_TicketsResolution", MyConnectionString)
MyDB_DS.DataSetName = "EazyQA_Aces"
MyDB_DS.Tables(0).TableName = "Users"
MyDB_DS.Tables(1).TableName = "Tickets"
MyDB_DS.Tables(2).TableName = "Tickets Resolution"
MyDB_DS.Relations.Add("Tickets Resolution", MyDB_DS.Tables(1).Columns("TicketID"), MyDB_DS.Tables(2).Columns("TicketID"))
e.PreviewDataSet = MyDB_DS
End Sub
VB.Net - соединение к MS SQL Server вместо XML
Добавлено: 01 сен 2010, 06:02
Aleksey
Здравствуйте,
В данном коде вы не получаете данные из базы. В Датасет вы просто добавляете пустые таблицы.
Используйте следующий код:
Код: Выделить всё
Protected Sub StiWebDesigner1_GetPreviewDataSet1(ByVal sender As Object, ByVal e As Stimulsoft.Report.Web.StiWebDesigner.StiPreviewDataSetEventArgs) Handles StiWebDesigner1.GetPreviewDataSet
Dim conn As New SqlConnection("Data Source=Alexey\LSK;Integrated Security=True;Initial Catalog=Demo")
Dim dataSet As New DataSet("SQL")
Dim dataTabl1 As New DataTable("Users")
Dim dataTabl2 As New DataTable("Tickets")
Dim dataTabl3 As New DataTable("Tickets Resolution")
Dim sql As String = "SELECT * FROM Users"
Dim command As New SqlCommand(sql, conn)
Dim da As New SqlDataAdapter
da.SelectCommand = command
da.Fill(dataTabl1)
sql = "SELECT * FROM V_QA_Tickets"
command.CommandText = sql
da.SelectCommand = command
da.Fill(dataTabl2)
sql = "SELECT * FROM V_QA_TicketsResolution"
command.CommandText = sql
da.SelectCommand = command
da.Fill(dataTabl3)
dataSet.Tables.Add(dataTabl1)
dataSet.Tables.Add(dataTabl2)
dataSet.Tables.Add(dataTabl3)
e.PreviewDataSet = dataSet
End Sub
Спасибо.
VB.Net - соединение к MS SQL Server вместо XML
Добавлено: 01 сен 2010, 14:03
Vasiliy Goncharenko
Алексей,
Спасибо за детальный ответ.
А можно ли этот код сделать более универсальным, заполняемым из базки динамически?
Смотрите в чем идея.
Мы определяем доступные таблицы через базу данных, а не прошиваем жестко в коде. Причина - контроль доступных таблиц правами доступа пользователя.
Т.е. словарь в дизайнере контролируется из базы данных.
Наш текущий код для создания словаря дизайнера легко адаптируется под db-driven решение:
1. Читаем список таблиц и связей для дизайнера
2. Читаем каждую таблицу/relation, добавляем в словарь дизайнера.
Ваш код предполагает жесткое кодирование количества и имен таблиц в коде.
А как заполнять список данных динамически?
Спасибо
VB.Net - соединение к MS SQL Server вместо XML
Добавлено: 02 сен 2010, 08:43
Aleksey
Здравствуйте,
По данному вопросу, вы можете посмотреть статью в базе знаний:
http://stimulsoft.helpserve.com/index.p ... =334&nav=0
Спасибо.