C# 如何从textbox c webform向crystal report中的子报表传递参数
来自Appdev的问候我是Crystal Report的新手 我正在创建一个包含crystal报表的web应用程序 我的要求是: 报告应根据文本框中给出的web表单中的值文本框显示 例如: 如果Textbox value=2,则表示只有id为2的项才能显示 我的crystal报表有3个子报表,如check,party,其中还包含来自另一个表(称为凭单,最后是银行)的值。 这4个表由一个名为id的公共字段链接 需要知道如何将参数传递给Crystal report。 如何只显示一次结果我的代码显示相同的结果两次 这就是我如何使用c中.cs文件中的参数绑定crystal报表的方法C# 如何从textbox c webform向crystal report中的子报表传递参数,c#,crystal-reports,visual-studio-2008-sp1,C#,Crystal Reports,Visual Studio 2008 Sp1,来自Appdev的问候我是Crystal Report的新手 我正在创建一个包含crystal报表的web应用程序 我的要求是: 报告应根据文本框中给出的web表单中的值文本框显示 例如: 如果Textbox value=2,则表示只有id为2的项才能显示 我的crystal报表有3个子报表,如check,party,其中还包含来自另一个表(称为凭单,最后是银行)的值。 这4个表由一个名为id的公共字段链接 需要知道如何将参数传递给Crystal report。 如何只显示一次结果我的代码显示相
public void LoadTransReceipt()
{
string Date = "";
string Sql = "SELECT tREC_NUPKId as ID from TB_TransReceipt where tREC_VCVoucherNo='" + TXTVou.Text.Trim() + "' and tREC_NUIsActive=1";
SqlDataReader rdr = mobjGenlib.objDBLib.ExecuteQueryReader(Sql.ToString());
while (rdr.Read())
{
Session["ID"] = rdr.GetValue(0).ToString();
}
rdr.Close();
if (!string.IsNullOrEmpty(Session["ID"] as string))
{
if (Session["Date"] != null)
{
Date = mobjGenlib.ConvertString(Session["Date"]);
}
reportPath = GetReportPath("ReceiptReport.rpt");
CRReport = new ReportDocument();
CRReport.Load(reportPath);
CrystalReportViewer1.ReportSource = CRReport;
AddParameterToReport("IDP", Session["ID"].ToString());
AddParameterToReport("ActiveP", 1);
AddParameterToReport("IDB", Session["ID"].ToString());
AddParameterToReport("ActiveB", 1);
AddParameterToReport("IDC", Session["ID"].ToString());
AddParameterToReport("ActiveC", 1);
// ConnectionInfo connectionInfo = ConnInfo();
ConnectionInfo objConnInfo = new ConnectionInfo();
objConnInfo.DatabaseName = "Demo";
objConnInfo.UserID = "aa";
objConnInfo.Password = "aaaa";
objConnInfo.ServerName = "HOME-PC\\SQLEXPRESS";
SetDBLogonForReport(objConnInfo, CRReport);
SetDataSetForMultipleSubReport(objConnInfo, CRReport);
}
}
但当我执行代码时,它会以双倍时间显示表中的所有可用数据,如下所示
有人能帮我解决这个问题吗
提前谢谢
将错误获取为
**
指定的参数超出了有效值的范围
**从报告中的“字段管理器”右键单击“添加新参数”,然后在“代码隐藏”中设置参数值,如下所示:
CRReport.SetParameterValue("@Parameter", TXTVou.Text)
您可以通过在查询中添加单词DISTINCT来防止重复,如:
"SELECT DISTINCT tREC_NUPKId as ID from TB_TransReceipt where tREC_VCVoucherNo='" + TXTVou.Text + "' and tREC_NUIsActive=1"
或者您可以通过抑制字段中的If Duplicated属性来防止重复Hi感谢您的响应…我们也可以使用上述代码将参数传递给子报告????。