在水晶报表中动态传递参数时出错
本文关键字:参数 出错 动态 水晶 报表 | 更新日期: 2023-09-27 18:09:49
我想显示从数据库动态加载到Crystal Report中的数据。为此,我做了以下事情
在crystal report
中创建以下参数EventName,EventDescription,Location,CashsafeSerialNo,Severity
在水晶报表
中创建以下公式字段@cashsafeserialno,@eventname,@eventdescription,@location-detail,
@severity-detail
最终报告的设计将如下所示
EventName EventDescription Location CashsafeSerialNo Severity
@eventname @eventdescription @location @cashsafeserialno @severity
@eventname的公式如下
if{?EventName}="CashsafeSerialNo" then {dtHealth.CashsafeSerialNo}
else if{?EventName}="EventName" then {dtHealth.EventName}
else if{?EventName}="EventDescription" then {dtHealth.EventDescription}
else if{?EventName}="Location" then {dtHealth.Location}
else if{?EventName}="Severity" then {dtHealth.Severity}
else "None";
数据表dtHealth返回以下列字段
EventName,Location,CashsafeSerialNo,Severity,CashsafeId
参数的值由后面的代码赋值,如下所示
if (Session["HealthReportSource"] != null)
{
ReportDocument rDocument = (ReportDocument)Session["HealthReportSource"] ;
for (int i = 0; i < dsHealth.Tables[0].Columns.Count; i++)
{
rDocument.SetParameterValue(i, dsHealth.Tables[0].Columns[i].ToString());
}
}
问题是,当报告呈现时,我得到的错误如下
This field name is not known. Details: errorKind Error in File DynamicHealthReport
{2229A8C9-B726-467C-9621-44B9FFEED632}.rpt: Error in formula eventname-detail:
'if{?EventName}="CashsafeSerialNo" then {dtHealth.CashsafeSerialNo} ' This field name is not known. Details: errorKind
您的问题是数据库连接。它没有设置,您的报告无法读取数据。因此,这些字段不可用。在运行报告