在水晶报表中动态传递参数时出错

本文关键字:参数 出错 动态 水晶 报表 | 更新日期: 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

在水晶报表中动态传递参数时出错

您的问题是数据库连接。它没有设置,您的报告无法读取数据。因此,这些字段不可用。在运行报告

之前设置数据库连接