2012-03-12 68 views
1

我试图在我的汇总字段中创建一个十进制格式公式。数据库中的值可能有0,1或2个小数位。我已经开始与此:水晶报告汇总字段的条件格式

If (CurrentFieldValue mod 1 = 0) Then 
      0 
Else If (CurrentFieldValue mod .1 = 0) Then 
      1 
Else 
      2 

在一个简单的单数据字段,这个工程并显示为0,1,或2基于从我的数据库里的数据小数位的值。在我的报告中使用组数据时,相同的公式不适用于摘要字段。有任何想法吗?

编辑:因为我不知道如何在注释格式的代码,我会在这里解决使用公式的建议:

没有工作。公式:

Sum ({myTable.dataValue}, {myTable.groupField}) 

然后我用:

If ({@formula} mod 1 = 0) Then 
    0 
Else If ({@formula} mod .1 = 0) Then 
    1 
Else 
    2 

而且我还有整数的一切。我的舍入设置为.01,没有公式。我是否需要一个四舍五入的公式?我仍然不明白为什么这对个人价值有效,但对群体摘要不起作用。

+0

尝试加入'whileprintingrecords;'以上报价 – 2012-03-12 16:32:45

+0

代码之前@LeeTickett没有骰子,我仍然得到所有的整数值 – SupremeDud 2012-03-12 17:07:18

回答

2

确定 - 事实证明,这是由于我们对mod功能缺乏了解:)

所有mod 1实际上都返回0.这是你需要使用的公式:

if {ER100_ACCT_ORDER.ER100_ORD_TOT} * 100 mod 100 = 0 then 
0 
else if {ER100_ACCT_ORDER.ER100_ORD_TOT} * 100 mod 10 = 0 then 
1 
else 
2 

:)

+0

所以你说的2.5 MOD 1 = 0?是不是剩下的.5? – SupremeDud 2012-03-12 17:25:22

+0

https://www.google.com/search?sourceid=chrome&ie=UTF-8&q=2.5+mod+1 – SupremeDud 2012-03-12 17:25:51

+2

晶体模量定义为:'将x除以y并返回一个整数的余数' – 2012-03-12 17:30:54

1

如何只创建一个公式字段,而不是使用内置的汇总字段:

sum({mytable.myfield}) 

然后你可以使用条件格式:

If ({@formula} mod 1 = 0) Then 
     0 
Else If ({@formula} mod .1 = 0) Then 
     1 
Else 
     2