如何在数据标签中将时间值格式化为 HH:MM:SS [英] How to format timevalue to HH:MM:SS in datalabel

查看:16
本文介绍了如何在数据标签中将时间值格式化为 HH:MM:SS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我在水晶报表中有一个条形图.在这个图表上,我在每个图表上附加了一个数据标签,以秒为单位显示图表的值,如下所示:我想做的是将此数据标签格式化为时间格式.因此,对于图中的每个条形,数据标签将以下列格式显示:

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:

HH:MM:SS.

我可以使用以下公式获取时间格式:

i am able to get the time formatting to appear using the following formula:

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

但我不确定如何在数据标签上实现这个公式.

But what i am unsure of is how to implement this formula onto a data label.

非常感谢任何帮助或建议.

Any help or suggestions are greatly appreciated.

谢谢

推荐答案

可以选择显示组名,可以显示和格式化图表计算的汇总值,但不能提供自定义公式.在 CR XI 中使用图表库是不可能的.

You can choose to display the group name, and you can display and format the summarized value calculated by the chart, but you can't provide a custom formula. It just isn't possible using the chart library in CR XI.

我对这个问题的最终解决方法:

My eventual workaround for this problem:

  1. 修改值公式,消除聚合函数.(这是必要的,因为 Crystal 不允许在组名称字段中使用聚合函数 - 请参阅 #2.)
  2. 对于组名称,请指定一个公式,其中包含要在竖板中显示的文本.包括标签和格式化值,由 Chr(13) & 分隔Chr(10) 将它们放在不同的行上.
  3. 将提升板配置为显示标签,而不是值.
  1. Modify the value formula to eliminate the aggregate function. (This is necessary because Crystal won't allow an aggregate function in a group name field -- see #2.)
  2. For the group name, specify a formula with the text you want to display in the riser. Include both the label and the formatted value, separated by Chr(13) & Chr(10) to place them on separate lines.
  3. Configure the riser to display the label, not the value.

要将其应用于您的问题,您需要进行以下更改:

To apply this to your problem you'd need to make these changes:

  1. 去掉聚合函数.当然,我不知道这是否可以使用您的设置.如果您使用的是 DBMS,或许可以使用 SQL 命令或存储过程在数据到达 Crystal 之前计算总和.
  2. 在竖板或 X 轴上一起打印标签和值.

如果这对您的应用程序来说还不够好,您可以考虑 CRChart,一个商业替代品,它试图解决 Crystal 图表库有时严重的限制.(我认为它太贵了.)我认为 @APPEND_DATATEXT 宏可以让您在提升板上放置自定义值,但您仍然需要将摘要移动到服务器.

If that's not good enough for your application, you might consider CRChart, a commercial replacement which tries to address the sometimes-crippling limitations of Crystal's chart library. (I thought it was too pricey.) I think the @APPEND_DATATEXT macro would let you place a custom value on a riser, but you'd still need to move the summary to the server.

这篇关于如何在数据标签中将时间值格式化为 HH:MM:SS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆