【发布时间】:2014-06-12 13:04:32
【问题描述】:
来自 Appdev 的问候(我是 Crystall Report 的新手)
我正在创建一个包含水晶报表的 Web 应用程序。
我的要求是:
应根据文本框中给出的值(网络表单中的文本框)显示报告。
例如: 如果 Textbox value = 2 表示只有 id 为 2 的项目才应该显示。
我的水晶报表有 3 个子报表,例如支票、派对(其中还包含其他表中的值,称为凭证),最后是银行。 这 4 个表由 1 个称为 id 的公共字段链接。
- 需要知道如何将参数传递给水晶报表。
- 如何只显示一次结果(我的代码显示两次相同的结果)
这就是我在c#中使用.cs文件中的参数绑定水晶报表的方法
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);
}
}
但是当我执行代码时,它会以双倍时间显示表中的所有可用数据,如下所示
谁能帮我解决这个问题
提前致谢
得到错误
" **
指定的参数超出了有效值的范围
**"
【问题讨论】:
标签: c# crystal-reports visual-studio-2008-sp1