我有一个应用程序可以打印文本框内的每个数据。所以这意味着我没有数据库
我使用RDLC来完成打印过程。我将每个文本框的参数设置为我的报告并添加此代码,以便将文本框的文本传输到报告中。
ReportParameter textbox1param = new ReportParameter("textbox1", textbox1.Text);
printform.reportViewer1.LocalReport.SetParameters(textbox1param);
我的问题是,当我这样做时,它会使我的系统在打印时崩溃,因为我多次重复此代码只是为了传输我的表单中的每个文本框的文本。 (我只重复代码10次,只更改文本框的名称和参数名称。)
我看到还有另一种使用数据集的方法。我的问题是我不使用数据库,因为我只是打印用户输入的屏幕中的内容。所以我无法为它创建查询。我有什么其他方法可以解决这个难题吗?谢谢你们!
答案 0 :(得分:1)
我刚刚尝试在不向报告添加数据源的情况下进行报告示例,它对我来说很好。即使它创建一个没有数据源的报告也有点奇怪。这就是我所做的,我首先创建了一个带有3个参数的虚拟报告,并将其分配给报告查看器
之后我去做了一些编码,因为你正在寻找它应该不会那么复杂,在这里我向你展示我的代码片段,填充我称之为函数的参数,但这不是必需的。如果报告不起作用,可能是因为您错误拼写了参数名称(它们区分大小写!)
private void Form2_Load(object sender, EventArgs e)
{
reportViewer1.LocalReport.SetParameters(SetParameter());
reportViewer1.RefreshReport();
}
private static IEnumerable<ReportParameter> SetParameter()
{
return new List<ReportParameter>
{
new ReportParameter("Param1", "text1", false),
new ReportParameter("Param2", "text2", false),
new ReportParameter("Param3", "text3", false)
};
}
执行此操作并运行我的小样本后,这是输出,我不确定您的报告出了什么问题。但正如我之前所说,我将检查参数名称是否在rdlc
上声明时写入