繁体   English   中英

如何在Crystal Reports中检查数据源是否为空

[英]How to check if data source is empty in Crystal Reports

所以我有一个看起来像这样的公式:

ToText({ProjectedHours.StartDate},{?Pm-?ShortDateFormat})  + " - " + ToText({ProjectedHours.EndDate},{?Pm-?ShortDateFormat}) 

ProjectedHours是我从C#/。NET传入的数据源。 问题是ProjectedHours可能为空。 我是否有办法基本上仅在ProjectedHours不为空的情况下有条件地执行上述代码?

我实际上也尝试过。 由于使用的是C#/。NET,因此可以检测ProjectedHours是否为空。 如果是这样,我只需将一个名为HideProjectedHours的参数设置为true,否则设置为false。 在Crystal中,我有以下代码:

If {?Pm-?HideProjectedPaidHours} = false Then
ToText({ProjectedHours.StartDate},{?Pm-?ShortDateFormat})  + " - " + ToText({ProjectedHours.EndDate},{?Pm-?ShortDateFormat}) 

但是,这也不起作用,并且我收到错误消息“为此函数提供了太多参数。详细信息:errorKind

谢谢,

您的问题的初看起来似乎是ToText函数存在更多参数的问题。

您的公式似乎是您在文本中使用dates ,因此请查看文档以更正语法。

http://pic.dhe.ibm.com/infocenter/rsawshlp/v7r5m0/index.jsp?topic=%2Fcom.businessobjects.integration.eclipse.designer.doc%2Fhtml%2Ftopic666.html

如果您尝试使用特定格式,请更新您的问题,并告诉我

问题解决了。 似乎在我的C#代码中,如果数据源为空(计数= 0),我简直无法将数据源添加到子报表中。 通过不将数据源添加到子报表,我停止看到错误消息。 基本上,我最初的问题是,即使我抑制了子报表,子报表中的公式也会引发水晶报表错误。

if (ProjectedHours.Count > 0)
{
     Report.Subreports["ProjectedHours"].SetDataSource(ProjectedHours);
}

在您的C#代码中:

if ((DT != null) & DT.Rows.Count > 0) {
return;
}

或在报告中选择可能返回null或为空的列,并使用禁止显示

isnull({ProjectedHours.ColumnName})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM