【发布时间】:2014-06-23 13:25:25
【问题描述】:
我想将动态加载的数据从数据库显示到水晶报表中。为此,我做了以下事情
在水晶报表中创建了以下参数
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";
Datatble 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
【问题讨论】:
-
我不知道 abt c# 但是查看数据库中的错误似乎没有像 cashsafeserialnumber 这样的字段...检查或刷新数据库
-
我已经更新了问题(包括从名为 dtHealth 的数据库表返回的列)
-
检查参数以获得您要比较的所需名称
标签: c# asp.net crystal-reports