如何在 Crystal Reports 2008 中将表示时间的小数转换为实际时间?例如:“1.5”代表 1:30
How do I convert a decimal number representing time to actual time in Crystal Reports 2008? Ex: "1.5" represents 1:30
我正在尝试编辑现有的 Crystal 报告,该报告显示工单的时间限额。预算时间/实际时间/剩余时间类型交易。
这些字段显示为未从报告的数据字段正确转换时间。制作报告的人已经有了一些公式,但我不确定它在做什么。
公式:标准时间
Stringvar array Std_Time := split(replace(cstr({WOMNT_CARD.STANDARD_HOURS_DURATION}),",",""),".");
val(Std_Time[1])*60+val(Std_Time[2])
报告中使用的字段是@Standard Time (Number)的总和。
如何解决此问题以便正确转换这些数字?
您发布的公式执行以下操作:
首先它使用cstr
函数将{WOMNT_CARD.STANDARD_HOURS_DURATION}
字段的数据类型转换为字符串,结果用replace
函数去掉逗号,结果字符串是以点号为分隔符分割成数组
因此,对于值 1.5,Std_Time
变量将包含以下内容
Std_Time[1]
→ 1
Std_Time[2]
→ 5
最后,它通过将第一个索引的第一个值乘以 60 并加上第二个索引的值来计算结果。值 1.5 变为 1 * 60 + 5 = 65
如果1.5必须代表1:30那么最后一行必须变成
val(Std_Time[1]) * 60 + 60 * val(Std_Time[2]) / 10
因为 60 * 5 / 10 = 30
或者为了简单起见,您可以使用以下内容
60 * val(replace(cstr({WOMNT_CARD.STANDARD_HOURS_DURATION}),",",""))
因为 60 * 1.5 = 90
我正在尝试编辑现有的 Crystal 报告,该报告显示工单的时间限额。预算时间/实际时间/剩余时间类型交易。
这些字段显示为未从报告的数据字段正确转换时间。制作报告的人已经有了一些公式,但我不确定它在做什么。
公式:标准时间
Stringvar array Std_Time := split(replace(cstr({WOMNT_CARD.STANDARD_HOURS_DURATION}),",",""),".");
val(Std_Time[1])*60+val(Std_Time[2])
报告中使用的字段是@Standard Time (Number)的总和。
如何解决此问题以便正确转换这些数字?
您发布的公式执行以下操作:
首先它使用cstr
函数将{WOMNT_CARD.STANDARD_HOURS_DURATION}
字段的数据类型转换为字符串,结果用replace
函数去掉逗号,结果字符串是以点号为分隔符分割成数组
因此,对于值 1.5,Std_Time
变量将包含以下内容
Std_Time[1]
→ 1
Std_Time[2]
→ 5
最后,它通过将第一个索引的第一个值乘以 60 并加上第二个索引的值来计算结果。值 1.5 变为 1 * 60 + 5 = 65
如果1.5必须代表1:30那么最后一行必须变成
val(Std_Time[1]) * 60 + 60 * val(Std_Time[2]) / 10
因为 60 * 5 / 10 = 30
或者为了简单起见,您可以使用以下内容
60 * val(replace(cstr({WOMNT_CARD.STANDARD_HOURS_DURATION}),",",""))
因为 60 * 1.5 = 90