Crystal报表公式语法

时间:2011-03-10 16:23:39

标签: crystal-reports

我正在尝试在Crystal中修改报告。它有一个数据字段,其中包含一个公式,但我想使用另一个公式。

这是我想要做的一个例子。

[((# Days in January) – 15) x (Market Rent/(# Days in January))]
 + [((# Days in February) – 0) x (Market Rent/(# Days in February))]
 + [14 x (Market Rent/(# Days in March))]

我有针对市场租金建立的ADO命令,以及开始日期和结束日期。我的例子中的几个月只是一个例子。我不确定如何在过滤器页面上输入我输入的ADO命令日期,并将它们放在如上所示的公式中。有什么想法吗?

此外,在第一段和最后一段。 -15和14是月中的日期。因此,如果开始日期是1月15日,结束日期是3月15日。这个公式将计算我在空缺期间的租金损失。

1 个答案:

答案 0 :(得分:0)

如果我正确地阅读了您的问题,您想要获取日期字段,并了解如何衡量该月,之前一个月以及之后一个月的天数。这里有一些Crystal公式可以帮到你。我们假设您的日期字段名为{@DateFld}

要查找特定月份相对于特定日期的天数,请尝试以下操作:

local datevar X:=cdate(dateadd("m",0,{@DateFld}));

datediff(
   "d",
   date(year(X),month(X),1),
   date(year(X),month(X)+1,1)
)

我建议你复制&将其粘贴在3种不同的公式中:
  - 在第1个公式中,将“0”替换为-1以获取上个月的天数   - 在第二个公式中,不要改变任何东西。这将获得当月的天数(即{@DateFld}所在的月份)
  - 在第3个公式中,将“0”替换为+1以获取下个月的天数。

例如,如果{@DateFld}是2011年3月10日,那么第一个公式将给你28,第二个公式将给你31,第三个给你30。