【问题标题】:Crystal report formula syntax水晶报表公式语法
【发布时间】:2011-03-10 16:23:39
【问题描述】:

我想在 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 日。这个公式将计算我在空置期间的租金损失。

【问题讨论】:

    标签: crystal-reports


    【解决方案1】:

    如果我正确阅读了您的问题,您希望获取一个日期字段并了解如何测量该月、前一个月和后一个月的天数。这里有一些水晶公式可以帮助你。假设您的日期字段名为{@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 个不同的公式中:
    - 在第一个公式中,将“0”替换为-1,得到上个月的天数。
    - 在第二个公式中,不要更改任何内容。这将为您提供当月的天数(即 {@DateFld} 所在的月份)
    - 在第三个公式中,将“0”替换为+1,得到下个月的天数。

    例如,如果 {@DateFld} 是 2011 年 3 月 10 日,则第一个公式将为您提供 28,第二个将为您提供 31,第三个将为您提供 30。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多