Страница 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

Спасибо.