我正在使用VB.NET开发一个Windows窗体应用程序。我目前正在研究DataReport(由Microsoft而不是Crystal)。将DataSet用作DataSource时,一切正常。但我有一个问题,我如何从用户输入将数据放入我的DataReport?优选地,当用户处于打印行为(单击ReportViewer中的打印按钮)时,将弹出一个表单并询问他输入。我正在谈论的那个输入是人的随机名称,我们不必跟踪他们的名字,所以没有理由把它放在数据库上。
这是我的简单设置:
MainForm.vb(表格)
MyReport.rdlc(DataReport)
InputForm(Form)
如果在打印行为中无法做到这一点。也许在MainForm_Load
事件或报告生成之前。
我在网上搜了一个小时,但我运气不好。
答案 0 :(得分:0)
我找到了答案,它叫做ReportParameters。 以下是设置方法:
'Get input from user...
Dim OneParameter As String = InputBox("Enter something to display on report!", "Report Parameter")
'Prepare report parameters... The `SetParameters` requires array of `ReportParameter`...
Dim ReportParameters As New List(Of ReportParameter)
'Add the user input to `ReportParameter` array...
ReportParameters.Add(New ReportParameter("OneParameter", OneParameter, True))
'Set the `ReportParameters` of the `ReportViewer`...
FormWithReportViewer.TheReportViewer.LocalReport.SetParameters(ReportParameters)
FormWithReportViewer.Show()
FormWithReportViewer.Focus()
在DataReport(.rdlc)上,我们必须添加ReportParameters
(菜单>报告>报告参数)。应使用相同的名称(OneParameter)来避免错误。我们现在可以在文本框中使用参数,只需添加=Parameters!OneParameter.Value
,我们就完成了!
注意:我们必须在呈现报告之前设置报告参数。如果我们无法避免这种情况,请在添加参数后刷新报告,以便更新:
FormWithReportViewer.TheReportViewer.RefreshReport