VB.NET/Windows窗体-从用户输入到数据报表的数据?

VB.NET/Windows窗体-从用户输入到数据报表的数据?,vb.net,user-input,report,Vb.net,User Input,Report,我正在用VB.NET开发一个windows窗体应用程序。我目前正在开发DataReport(由Microsoft开发,而不是Crystal)。当使用DataSet作为数据源时,一切正常。但我有一个问题,那就是如何将用户输入的数据放到我的数据报告中?最好是当用户正在打印时(单击ReportViewer中的“打印”按钮),会弹出一个表单并要求用户输入。我所说的输入是随机的人名,我们不必追踪他们的名字,所以没有理由将其输入数据库 以下是我的简单设置: MainForm.vb(表单) MyRepor

我正在用VB.NET开发一个windows窗体应用程序。我目前正在开发DataReport(由Microsoft开发,而不是Crystal)。当使用DataSet作为数据源时,一切正常。但我有一个问题,那就是如何将用户输入的数据放到我的数据报告中?最好是当用户正在打印时(单击ReportViewer中的“打印”按钮),会弹出一个表单并要求用户输入。我所说的输入是随机的人名,我们不必追踪他们的名字,所以没有理由将其输入数据库

以下是我的简单设置:

  • MainForm.vb(表单)

    • MyReportViewer(ReportViewer)
  • MyReport.rdlc(数据报告)

  • 输入表单(表单)

    • MyInputBox(文本框)
如果是不可能做到这一点的行为印刷。可能在
MainForm\u Load
事件上,或者在生成报告之前。
我在网上搜索了一个小时,但运气不好。

我找到了答案,它叫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)以避免错误。我们现在可以使用文本框中的参数,只需输入
=参数!一个参数.Value
就完成了

注意:我们必须在呈现报表之前设置报表参数。如果无法避免,请在添加参数后刷新报告,以便更新:

FormWithReportViewer.TheReportViewer.RefreshReport