У меня проблема с подключением таблицы базы данных к отчету во время выполнения в Microsoft ReportViewer в VB.Net 2010 - PullRequest
0 голосов
/ 03 ноября 2019

Я пишу приложение для производства отчетов для небольшой производственной компании. Производственные данные добавляются в базу данных MSAccess с использованием интерфейса VB.Net, а затем пользователь может выбрать месяц, а ежемесячное производство отображается с использованием MS ReportViewer и предварительно подготовленного отчета, сохраненного в файле с именем Report1.rdlc. Перед загрузкой отчета я создаю данные отчета во временной таблице в базе данных, и местоположение базы данных передается в средство просмотра отчетов во время выполнения. Проблема в том, что он работает в среде разработки, но не в развернутом исполняемом файле.

Private Sub frmReport_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    ' Get the location of the data file from the configuration file
    Dim strConnectString As String
    strConnectString = ""

    FileOpen(1, "ProdPlan.cfg", OpenMode.Input)
    Input(1, strConnectString)
    FileClose(1)
    strConnectString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source= " & strConnectString

    ' Add the local data file as the new data source for the report
    ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", strConnectString))
    Me.DataTable1BindingSource.DataSource = DataSet1
    Me.DataTable1TableAdapter.Connection.ConnectionString = strConnectString
    Me.DataTable1TableAdapter.Fill(Me.DataSet1.DataTable1)
    Me.DataTable1TableAdapter.GetData()

    ' Set the printing settings for the report

    Dim pageSettings = New Printing.PageSettings()

    pageSettings.PaperSize = New Printing.PaperSize("Custom", 850, 1100)
    pageSettings.Landscape = True
    pageSettings.Margins.Left = 75
    pageSettings.Margins.Right = 75
    pageSettings.Margins.Top = 75
    pageSettings.Margins.Bottom = 75

    Me.ReportViewer1.SetPageSettings(pageSettings)

    Me.ReportViewer1.RefreshReport()

End Sub

Когда я впервые открываю развернутую программу и запускаю отчет, она работает нормально, но затем, когда я добавляю новые данныев базу данных отчет больше не запускается. Форма подходит, но в отчете нет данных. Когда я проверяю в базе данных, данные там, и таблица временных отчетов заполняется правильно. Я подозреваю, что проблема в том, что средство просмотра отчетов каким-то образом теряет соединение с базой данных при добавлении новых данных, но я понятия не имею, почему это произойдет в рабочей версии, а не в версии для разработчиков. Я подключаю базу данных к отчету каждый раз, когда загружаю форму отчета, как показано в сегменте кода.

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