将值存储在 crystal 报告 c#
store the value on crystal report c#
我遇到了 crystal 报告的问题。
我已经生成了一个自定义公式来计算总出勤时数。
公式代码是:
if({Atendances.Status} = "OUT") then
DateDiff("h",Previous({Atendances.Time}),{Atendances.Time});
我得到的结果是
1/5/2015 ___________________________
Time || Status
1/5/2015 11:06:00AM || IN
1/5/2015 3:06:00PM || OUT
1/5/2015 4:06:00PM || IN
1/5/2015 7:06:00PM || OUT
Total Hours : 3.00
数字 3.00 是公式的结果,应该是 7.00 小时
问题是没有对结果值进行求和或存储。
我尝试定义变量,但结果将是 0.0
有什么建议吗?
每次有新记录时,您的公式都会重置,因此唯一保留的值是最后一个。
您需要创建一个变量然后递增它
这将创建一个变量:
Shared NumberVar TotalTime;
然后您需要将其放入公式中并将其放入报告中 header,以便它在开头声明。
现在您需要的是您当前拥有的公式,您需要引用该变量并使用它。你就这样吧:
Shared NumberVar TotalTime; // this refers to the variable
TotalTime:= TotalTime + 1 // this increment whatever value of it by 1
所以你需要做的就是在引用变量之后添加你的 if 语句,然后如果它是真的计算时间和变量的增量。然后最后以在报表页脚中显示值为例,您创建了另一个公式:
Shared NumberVar TotalTime; // this refers to the variable
TotalTime; // this simply return the value as a normal formula
我确定我遗漏了一些东西,但在我看来,使用 Crystal 中已有的摘要会更容易。
确保您的记录按时间升序排序,这可能已经是这样了。
看起来您的报告是按日期字段分组的?或者甚至可能首先由服务员?
所以创建一个公式
if {Atendances.Status} = "OUT"
then DateDiff("h",Previous({Atendances.Time}),{Atendances.Time})
else 0
将其放入详细信息部分并创建一个摘要以将页脚 1 或 2 或您想要的任何其他位置分组。然后从详细信息部分删除它。
我遇到了 crystal 报告的问题。
我已经生成了一个自定义公式来计算总出勤时数。 公式代码是:
if({Atendances.Status} = "OUT") then
DateDiff("h",Previous({Atendances.Time}),{Atendances.Time});
我得到的结果是
1/5/2015 ___________________________
Time || Status
1/5/2015 11:06:00AM || IN
1/5/2015 3:06:00PM || OUT
1/5/2015 4:06:00PM || IN
1/5/2015 7:06:00PM || OUT
Total Hours : 3.00
数字 3.00 是公式的结果,应该是 7.00 小时 问题是没有对结果值进行求和或存储。
我尝试定义变量,但结果将是 0.0
有什么建议吗?
每次有新记录时,您的公式都会重置,因此唯一保留的值是最后一个。
您需要创建一个变量然后递增它 这将创建一个变量:
Shared NumberVar TotalTime;
然后您需要将其放入公式中并将其放入报告中 header,以便它在开头声明。
现在您需要的是您当前拥有的公式,您需要引用该变量并使用它。你就这样吧:
Shared NumberVar TotalTime; // this refers to the variable
TotalTime:= TotalTime + 1 // this increment whatever value of it by 1
所以你需要做的就是在引用变量之后添加你的 if 语句,然后如果它是真的计算时间和变量的增量。然后最后以在报表页脚中显示值为例,您创建了另一个公式:
Shared NumberVar TotalTime; // this refers to the variable
TotalTime; // this simply return the value as a normal formula
我确定我遗漏了一些东西,但在我看来,使用 Crystal 中已有的摘要会更容易。 确保您的记录按时间升序排序,这可能已经是这样了。 看起来您的报告是按日期字段分组的?或者甚至可能首先由服务员? 所以创建一个公式
if {Atendances.Status} = "OUT"
then DateDiff("h",Previous({Atendances.Time}),{Atendances.Time})
else 0
将其放入详细信息部分并创建一个摘要以将页脚 1 或 2 或您想要的任何其他位置分组。然后从详细信息部分删除它。