我是VB的新手,所以请不要对我的编码技巧大笑:)
我创建了一个从2个表中提取的数据集(Dataset1)。表适配器上的SQL连接2个表。表适配器都正确返回数据。报告查看器中的数据源是:
DataSet1_uaPowderCoat
DataSet1_uaPowderCoatType
并且它们都被实例化为其绑定源。有一个报告参数(Lot Num)需要将报告中的信息过滤到一行中的数据。
表单加载事件中的代码:
Me.ReportViewer1.LocalReport.DataSources.Clear()
Me.ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1_uaPowderCoat", uaPowderCoatTableAdapter.GetData()))
Me.ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1_uaPowderCoatType", UaPowderCoatTypeTableAdapter.GetData()))
Me.ReportViewer1.RefreshReport()
在报道活动中:
Dim params(0) As Microsoft.Reporting.WinForms.ReportParameter
params(0) = New Microsoft.Reporting.WinForms.ReportParameter("Report_Parameter_0", Me.txtLotNumber.Text)
ReportViewer1.LocalReport.SetParameters(params)
Me.uaPowderCoatTableAdapter.FillByPCLotNbr(DataSet1.uaPowderCoat, me.txtLotNumber.Text)
Me.ReportViewer1.RefreshReport()
报告字段是: =参数!Report_Parameter_0.Value
=(字段!PCStrength.Value)
参数字段工作正常,但我无法填充其余字段(只是#error)。我已经研究并尝试了大量不同的东西,如果我得到一件事,那么其他问题就出错了。有人可以帮忙吗?
谢谢!
答案 0 :(得分:0)
我怀疑您在字段中遇到数据源绑定错误或语法错误。请尝试以下方法之一:
对于数据源绑定,请确保bindingSource和DataSource都连接到报表,并且报表也可以访问它们。下面是我如何绑定我的数据源:
this.bindingSource1.DataSource = somelist;
this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("SomeDataTableName", (this.PointBindingSource)));
另外,我注意到DataSet1_uaPowderCoat
和FillByPCLotNbr(DataSet1.uaPowderCoat
中数据集名称的不同。那可能是错误?
确保=Parameters!Report_Parameter_0.Value =(Fields!PCStrength.Value)
是正确的语法。您是否遗漏了IFF
声明?