0

这是交易,我有一个带有 Time(7) 字段的 SQL 数据库,当我在 VS 项目中连接到 CR 时,CR 将我的 Time 数据库列检测为字符串......或者这让我相信。我可以从数据库中导入我的所有数据,但是当我尝试使用 CR 公式格式化报告中的文件时,我得到“这个函数已经给出了很多参数”

我已经阅读了很多并绑定了许多公式,但仍然无法纠正这个问题,我当前的公式代码(看起来很简单)是:

totext ({Checkin_CheckoutT.Checkin_time}, "hh:mm")

我尝试了另一个似乎在正确轨道上的代码:

Totext(CTime({Checkin_CheckoutT.Checkin_time}), "hh:mm")

但是有了这个,当我刷新我的报告时,我得到了“错误的时间格式字符串” 。我整天都在看这个,但仍然没有解决方案......请帮助!

当前软件:SQL 管理器 2012、VS 2012、Sap CR 13.0.5

4

2 回答 2

2

Time(7) 只是一个非常精确的时间字段,但是 Crystal(或至少正在使用的版本)是在 Time(7) 存在之前构建的,所以它不知道如何处理它。结果是hh:mm:ss.nnnnnnn格式的时间字符串。如果您只需要字符串中的小时和分钟,则使用Left({Checkin_CheckoutT.Checkin_time}, 5)拉出前 5 个字符(这将是hh:mm部分)。

如果需要,您也可以在之后将其翻转回水晶时间:CTime(Left({Checkin_CheckoutT.Checkin_time}, 5))

于 2013-04-03T22:19:49.677 回答
1

如果您 Crystal 将其作为字符串字段读取,并且您不想弄乱 SQL 代码来转换它,这应该可以工作。我很确定我记得 SQL time(7) 字段在 hh:mm:ss.ms

time(tonumber(split({yourtime7string},":")[1]),tonumber(split({yourtime7string},":")[2]),0)

从那里右键单击,格式化字段并告诉Crystal您希望它的外观。

如果您必须在公式中对其进行格式化

totext(time(tonumber(split({yourtime7string},":")[1]),tonumber(split({yourtime7string},":")[2]),0),"HH:mm")
于 2013-04-02T01:29:26.253 回答