Crystal Reports 或 Active Reports 中的 TimeSpan 字段类型
在报告中,我必须实现时间跨度字段(例如活动的持续时间)。在报告的最后,应包括基于报告的摘要。 Crystal Reports 和 Active Reports 都不支持 TimeSpan 字段。我不想使用任何公式或其他解决方法。只需显示 TimeSpan 字段(如 1:45、45:23、0:30)并在末尾显示摘要(如 109:20)。
有什么建议吗?
In a report, I have to implement timespan fields (For example duration of an activity). At the end of the report, a summary based on it should be included.
Neither Crystal Reports nor Active Reports support TimeSpan fields. I don't want to use any formula or other workarounds. Simply just show the TimeSpan fields (like 1:45, 45:23, 0:30) and show the summary at the end (like 109:20).
Any suggestion?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试我的 ElapsedTime() 函数;将其与汇总字段的显示字符串公式一起使用。
Try my ElapsedTime() function; use it with the summary field's Display String formula.
如果不了解更多信息,例如为什么不想使用公式,以及这是否是 SQL Server 中的 TimeSpan 数据类型,或者它是否以其他方式存储在数据库中,或者以某种方式进行计算(例如在应用程序代码中)等...
尽管没有更多信息,公式是在 ActiveReports 和 Crystal Reports 中解决此问题的正确方法。由于您需要摘要,因此在 ActiveReports(我最有经验的地方)中,我认为最好的方法是将时间跨度值作为单个数值引入,如分钟数。这将允许您使用正常的无代码 ActiveReports 汇总功能,如此处所述。
然后,要将数字格式化为所需的输出文本,请使用 TextBox 的 DataField 属性中的公式,例如:
=Math.Floor(Minutes/60) + ":" + (Minutes % 60)
。有关在 DataField 属性中使用公式的更多信息,请参阅此处和此处。It is difficult to say for sure without knowing more information such as why you don't want to use formulas and whether this is a TimeSpan data type in SQL Server or it is stored in some other way in the database, or being calculating somehow (e.g. in application code), etc...
Without more information though, a formula is the right way to solve this in ActiveReports as well as Crystal Reports. Since you need a summary, in ActiveReports (where I have the most experience) I'd say the best way to do this is bring in the timespan value as a single numeric value as number of minutes. This will allow you to use the normal no-code ActiveReports summarization features as described here.
Then to format the number into the desired output text use a formula in the DataField property of the TextBox such as:
=Math.Floor(Minutes/60) + ":" + (Minutes % 60)
. More information about using formulas in the DataField property is here and here.