在报表中有一个列,其中包含 MM/dd/yyyy 格式的字符串日期字段。其中一些列可能包含空字符串。对部分进行排序时遇到问题。我大约需要 10 个小时来进行 Telerik 报告,所以我可能会遗漏一些明显的东西。
我最初尝试使用这样的表达式:
=IIf(Fields.ExpirationDate='', CDate('1/1/1990'), CDate(Fields.ExpirationDate))
这看起来正确吗?这引发了错误:处理报告时发生错误'':无法比较数组中的两个元素。
------------- InnerException ------------- 执行函数 CDate() 时发生错误。检查 InnerException 以获取更多信息。------------- InnerException ------------- 调用目标抛出异常。------------- InnerException ------------- 字符串未被识别为有效的 DateTime。
另一位开发人员建议使用自定义方法,因此我在 report.cs 文件中创建
public DateTime EmptyDateToNow( string expirationDate )
{
DateTime parsed;
if (!DateTime.TryParse(expirationDate, out parsed))
return DateTime.Now;
return parsed;
}
然后尝试使用 =EmptyDateToNow(Fields.ExpirationDate) 调用
这会引发错误:
处理报告“”时发生错误:无法比较数组中的两个元素。------------- InnerException ------------- 表达式包含未定义的函数调用 EmptyDateToNow()。