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