Crystal Reports отображает только последний столбец - PullRequest
0 голосов
/ 05 августа 2020

Я хочу отображать таблицу в отчетах Crystal, но она показывает только последний столбец, это мой код:

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

, но, когда я устанавливаю Datasource его отображение " the report has no tables", можно кто-нибудь объясните мне, почему я получаю эту проблему? спасибо

Report1.SetDataSource(dt)

1 Ответ

0 голосов
/ 05 августа 2020

Сначала давайте исправим ваш код VB. Полностью удалите For / Next 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)
        
        CrystalReportViewer1.ReportSource = Report1
        Cursor = Cursors.Default
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

Это правильно привяжет вашу таблицу данных к объекту Report1 в качестве источника данных. Теперь вам нужно исправить свой отчет в дизайнере, удалив поля параметров из отчета. Поля параметров используются только тогда, когда вам нужно, чтобы пользователь передавал данные в отчет во время выполнения. Например, если бы я составлял отчет, который показывает пользователю данные за один финансовый период, и я хочу, чтобы он был достаточно гибким для работы с любым периодом, я бы использовал поле параметра, чтобы попросить пользователя указать период в качестве входных данных. когда отчет выполнен. Если вы посмотрите на Field Explorer в своем дизайнере отчетов, вы должны увидеть «Поля базы данных». В развернутом виде это должно показать вам таблицу или таблицы, которые определены как база данных отчета. После развертывания таблицы вы увидите список полей, доступных для отчета. Перетащите поля, которые вы хотите отображать в своем отчете, в раздел, где они должны появиться.

Как только это будет сделано, ваш отчет должен работать. Это предполагает, что ваша база данных определена в эксперте по базам данных в дизайнере отчетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...