So i have a bar graph in crystal reports. On this graph i have a data label attached to each of the graphs that displays the value of the graph in seconds, which appears like so:
What i would like to do is format this data-label into a time formatting. So for each bar in the graph it would have the data-label appear in the following format:
时:分:秒。
我可以使用以下公式来显示时间格式:
local NumberVar Sec;
local NumberVar ss;
local NumberVar mm;
local NumberVar hh;
local StringVar SSS;
local StringVar MMM;
Sec := Sum ({GetAlarmSummaryDataSet2Response/GetAlarmSummaryDataSet2Result/Items/AlarmSummaryItem2.StopTime}, {GetAlarmSummaryDataSet2Response/GetAlarmSummaryDataSet2Result/Items/AlarmSummaryItem2.Section}) ;
hh := Int (Sec/3600);
mm :=Int ((Sec/60)- (60* Int(Sec/3600 )));
If mm<10 then MMM := "0" & ToText (mm,0);
If mm>9 Then MMM := ToText(mm,0) ;
ss :=Sec-(3600 * hh ) - (60 * mm ) ;
If ss<10 then SSS := "0" & ToText (ss,0);
If ss>9 Then SSS := ToText(ss,0) ;
ToText ( hh,0) & ":" & MMM & ":" & SSS
但我不确定如何将这个公式应用到数据标签上。
非常感谢任何帮助或建议。
谢谢
您可以选择显示组名称,并且可以显示图表计算的汇总值并设置其格式,但无法提供自定义公式。使用 CR XI 中的图表库是不可能的。
我对这个问题的最终解决方法:
- 修改数值公式,消除聚合函数。 (这是必要的,因为 Crystal 不允许在组名称字段中使用聚合函数 - 请参阅#2。)
- 对于组名称,请指定一个公式以及要在提升板中显示的文本。包括标签和格式化值,用分隔符分隔
Chr(13) & Chr(10)
将它们放在不同的行上。
- 配置提升板以显示标签,而不是值。
要将其应用于您的问题,您需要进行以下更改:
- 消除聚合函数。当然,我不知道使用您的设置是否可以实现这一点。也许如果您使用的是 DBMS,则可以在数据到达 Crystal 之前使用 SQL 命令或存储过程来计算总和。
- 打印标签和值together,无论是在立管上还是在 X 轴上。
如果这对您的应用程序来说还不够好,您可以考虑CRChart http://www.threedgraphics.com/tdg/products/tools/crchart/product_info.php,一个商业替代品,试图解决 Crystal 图表库有时严重的限制。 (我认为它太贵了。)我认为@APPEND_DATATEXT http://www.threedgraphics.com/tdg/products/tools/crchart/html_docs/docs/macros/append_datatext.htm宏可以让您在提升板上放置自定义值,但您仍然需要将摘要移动到服务器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)