Заполнить раздел сведений программно Crystal Reports Vb.net - PullRequest
0 голосов
/ 07 августа 2020

Я хочу заполнить раздел сведений в моем отчете о кристаллах таблицей данных. Сначала я создал ParametersFields и перетащил их в раздел подробностей отчета о кристаллах ... в загрузке формы я сделал этот код для получения данных из моя база данных доступа и поместите их в таблицу с именем dt, чем установите dt в качестве источника данных отчета Crystal, вот я получаю две проблемы:

1 - если установить dt в качестве источника данных, я получаю сообщение об ошибке: "в отчете нет tables ":

Try
    Cursor = Cursors.WaitCursor
    Dim id As Integer = 1
    Dim Report1 As New PrintStockReport
    Dim dt As DataTable = New DBConnect().selectdata( _
          "SELECT StockTable.StockRef, StockTable.StockCat FROM StockTable;")

    
    Report1.SetDataSource(dt)
    For i As Integer = 0 To dt.Rows.Count - 1
        Report1.SetParameterValue("StockID", id)
        Report1.SetParameterValue("StockRef", dt.Rows(i)(0).ToString)
        Report1.SetParameterValue("StockCat", dt.Rows(i)(1).ToString)
        id += 1
    Next
    CrystalReportViewer1.ReportSource = Report1
    Cursor = Cursors.Default
Catch ex As Exception
    MessageBox.Show(ex.Message)
End Try

2 - но когда я просто использую l oop, он работает, но показывает только последние записи, и это не нормально, потому что в разделе данных должны отображаться все записи!

Try
    Cursor = Cursors.WaitCursor
    Dim id As Integer = 1
    Dim Report1 As New PrintStockReport
    Dim dt As DataTable = New DBConnect().selectdata( _
          "SELECT StockTable.StockRef, StockTable.StockCat FROM StockTable;")

    
    'Report1.SetDataSource(dt)
    For i As Integer = 0 To dt.Rows.Count - 1
        Report1.SetParameterValue("StockID", id)
        Report1.SetParameterValue("StockRef", dt.Rows(i)(0).ToString)
        Report1.SetParameterValue("StockCat", dt.Rows(i)(1).ToString)
        id += 1
    Next
    CrystalReportViewer1.ReportSource = Report1
    Cursor = Cursors.Default
Catch ex As Exception
    MessageBox.Show(ex.Message)
End Try
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...