2012-12-10 2 views
0

내 프로그램에 대한 reportviewer 컨트롤이 있습니다. 그것은 일하고있다. 그리고 나서 나는 그것과 아무 관련이없는 somethings를 바꿨다. 내 코드에서이 코드와 다른 코드의 유일한 차이점은 데이터 세트입니다. 그러나이 하나는 reportviewer에서 데이터를 채우지 않습니다. 데이터는 데이터 테이블에 있지만 보고서에는 표시되지 않습니다. 어떤 아이디어?Reportviewer가 데이터를 채우지 않습니다.

'Shows Appropriate Batch Reports 
Private Sub btnShowBatchReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowBatchReport.Click 
    Try 
     'Get Dates for reports 
     Dim todayDate As Date = Today 
     Dim weekDate As Date = Today.AddDays(-7) 
     Dim monthDate As Date = Today.AddMonths(-1) 
     Dim yearDate As Date = Today.AddYears(-1) 
     Dim name As String = My.Settings.Store_Name 

     'Assigning the report name object 
     Dim BatchReportName As New Generic.List(Of ReportParameter) 

     If rbBatchAll.Checked Then 
      Me.OVERALLINVENTORYTableAdapter.Fill(Me.POSDataSet.OVERALLINVENTORY) 
      BatchReportName.Add(New ReportParameter("ReportBatchName", "All Batches")) 

     ElseIf rbBatchMonth.Checked Then 
      Me.OVERALLINVENTORYTableAdapter.FillByBetweenDates(Me.POSDataSet.OVERALLINVENTORY, monthDate, todayDate) 
      BatchReportName.Add(New ReportParameter("ReportBatchName", "Past Month Batches " & monthDate & " to " & todayDate)) 

     ElseIf rbBatchWeek.Checked Then 
      Me.OVERALLINVENTORYTableAdapter.FillByBetweenDates(Me.POSDataSet.OVERALLINVENTORY, weekDate, todayDate) 
      BatchReportName.Add(New ReportParameter("ReportBatchName", "Past Week Batches " & weekDate & " to " & todayDate)) 

     ElseIf rbBatchYear.Checked Then 
      Me.OVERALLINVENTORYTableAdapter.FillByBetweenDates(Me.POSDataSet.OVERALLINVENTORY, yearDate, todayDate) 
      BatchReportName.Add(New ReportParameter("ReportBatchName", "Past Year Batches " & yearDate & " to " & todayDate)) 

     Else 
      Me.OVERALLINVENTORYTableAdapter.FillByBetweenDates(Me.POSDataSet.OVERALLINVENTORY, dpBatchStartDate.Value, dpBatchEndDate.Value) 
      BatchReportName.Add(New ReportParameter("ReportBatchName", "Custom Batches between" & dpBatchStartDate.Value & " and " & dpBatchEndDate.Value)) 

     End If 

     'Resets the Report Viewer 
     rvBatchOrders.Reset() 

     'Creates the ReportData Source Object 
     Dim BatchOrders = New Microsoft.Reporting.WinForms.ReportDataSource 

     'Assigns the DataSet to the object 
     BatchOrders.Name = "InventoryBatch" 


     'Assigns the binding source of the dataset 
     BatchOrders.Value = INVENTORYBindingSource 

     'Clears Previous Data source 
     Me.rvBatchOrders.LocalReport.DataSources.Clear() 

     'Add the new data source 
     Me.rvBatchOrders.LocalReport.DataSources.Add(BatchOrders) 

     'Embeds the new report in the report viewer 
     rvBatchOrders.LocalReport.ReportEmbeddedResource = "POS_System_V2.OrderBatches.rdlc" 

     'Sets the Report Name 
     rvBatchOrders.LocalReport.SetParameters(BatchReportName) 

     rvBatchOrders.SetDisplayMode(DisplayMode.PrintLayout) 
     rvBatchOrders.ZoomMode = ZoomMode.PageWidth 

     'Refreshs the report viewer with the new report 
     rvBatchOrders.Refresh() 
     rvBatchOrders.RefreshReport() 

답변

0

내가 문제를 알아 냈어 :

여기 내 코드입니다. 그것은 우습다, 나는 이것을 고치려고 노력하는 3 시간 동안 머리 위로 나 자신을 쾅쾅 소리 친다. 스택 오버플로에 넣으면 즉시 문제가 발생합니다.

문제점

BatchOrders.Value = INVENTORYBindingSource 

답은

BatchOrders.Value = OVERALLINVENTORYBindingSource 

내가 잘못 바인딩 소스를했다.