如何在报表中使用表单控件属性

本文关键字:表单 控件 属性 报表 | 更新日期: 2023-09-27 18:06:41

我正在尝试为学校管理系统开发一个简单的数据库前端,我使用ReportViewer从报告中显示一些数据,但是我想在报告中显示一些数据,而不是在数据库中,而是在UI中作为用户输入(认为myTextBox.Text) !如何做到这一点?

哦,我的ReportViewer是在一个不同的表单比我想使用的用户输入字段,我没有一个问题,让两个表单一起通信,但如何从一个表单(控制属性)到报告中的数据!

我使用的是Visual Studio 2013, c#,数据库是MS Access .accdb.

谢谢。

如何在报表中使用表单控件属性

如果我对你的问题理解正确的话:你首先把用户带到一个带有一些输入控件的页面。当他/她输入一个值并提交表单时,您将用户重定向到一个Report页面,该页面将显示用户输入的数据以及从数据库中提取的其他数据。如果这是真的,这是我的帮助:

您可以通过各种方式在页面之间传递信息,其中一些取决于重定向是如何发生的。以下选项是即使源页面在不同的ASP中,也可以使用。网网络应用程序,如果源页不是ASP。. NET Web Forms页面:

  • 使用查询字符串。
  • 从源页面获取HTTP POST信息。

    以下选项仅在源页面和目标页面位于同一ASP中时可用。NET Web应用程序。

    • 使用会话状态。
    • 在源页面中创建公共属性,并访问目标页面中的属性值。
    • 从源页中的控件获取目标页中的控件信息。

来源:https://msdn.microsoft.com/en-us/library/6c3yckfw.aspx

编辑:如果在windows窗体上工作,以下可能会有所帮助。我通常不使用WinForms,所以查看源代码链接了解更多细节:

在接收表单上创建方法来处理接收到的数据,如下所示:

internal void LoadCustomData(CustomClass customObject)  
{  
    // Update the local DataSet with the data in customObject     
}  

在输入表单上调用此方法,并为接收表单调用Show()方法,如下所示:

private void customersDataGridView_DoubleClick(object sender, EventArgs e)
{
    // Get data from the input control 
    CustomObject data;
    // Pass the data to receiving form
    ReceivingForm reportForm = new ReceivingForm();
    reportForm.LoadCustomData(data);
    reportForm.Show();
}

来源:https://msdn.microsoft.com/en-us/library/ms171925.aspx

我想我找到解决办法了!这只是一个使用报告参数的简单问题。它的用法如下:

假设我的主表单(MyForm)包含一个文本框(myTextBox),我想在报告(myReport)的某个地方打印它的值。rdlc,客户端报告),它显示在ReportViewer组件(myReportViewer)上。

我要做的第一件事是向myReport添加一个Report参数。在报表设计器中,在报表数据选项卡(最左边的面板)中,我单击新建>参数,然后填充参数的详细信息(名称,类型,允许空值,默认值等),假设我将其命名为paramText, Type = Text。

然后在Report Design界面中,我们设置了应该保存数据的字段表达式,如下所示:

=Parameters!paramText.Value
现在,回到我们的c#代码中,我刚刚向myFome_Load事件添加了以下代码,以将myTextBox中的文本与paramText关联起来:
myReportViewer.LocalReport.SetParameters(new ReportParameter("paramText", myTextBox.Text));

就是这样,这样出现在myTextBox中的文本将显示在myReport中定义的某个地方!这可以为任何WinForm控件或属性做,只要你在设置参数时尊重属性的类型。

如果ReportViewer在另一个表单中,比如我的例子,我只需公开myTextBox的Text属性(访问方法)并在另一个表单中使用它。

p。确保包含:

using Microsoft.Reporting.WinForms;