如何在报表中使用表单控件属性
本文关键字:表单 控件 属性 报表 | 更新日期: 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;