【问题标题】:Getting a Crystal Reports formula name inside the formula在公式中获取 Crystal Reports 公式名称
【发布时间】:2013-12-11 00:59:21
【问题描述】:

是否可以在公式本身中使用 Crystal Reports 公式的名称(在 Crystal 8.5 中)?

例如,假设我有如下公式:

@MOISTURE
@PROTEIN
@ACIDITY
@PROPERTYX
@PROPERTYY
@PROPERTYZ

并且每个公式的逻辑是相同的。公式之间的唯一区别是 他们最终访问的字段的名称。例如,@MOISTURE 看起来像这样:

if ... then {VIEW_SPECS.SOURCE_1_MOISTURE}
if ... then {VIEW_SPECS.SOURCE_2_MOISTURE}
if ... then {VIEW_SPECS.SOURCE_3_MOISTURE}
if ... then {VIEW_SPECS.AVERAGE_MOISTURE}

@PROTEIN 看起来像这样:

if ... then {VIEW_SPECS.SOURCE_1_PROTEIN}
if ... then {VIEW_SPECS.SOURCE_2_PROTEIN}
if ... then {VIEW_SPECS.SOURCE_3_PROTEIN}
if ... then {VIEW_SPECS.AVERAGE_PROTEIN}

我可以在公式本身中获取公式的名称,而不是为每个公式输入所有这些重复的内容,以便每个公式看起来像这样:

if ... then {VIEW_SPECS.SOURCE_1_{$this}}
if ... then {VIEW_SPECS.SOURCE_2_{$this}}
if ... then {VIEW_SPECS.SOURCE_3_{$this}}
if ... then {VIEW_SPECS.AVERAGE_{$this}}

我希望能够编写一次公式,并将其粘贴到每个公式的公式编辑器中,而不必修改每个公式。

【问题讨论】:

    标签: crystal-reports


    【解决方案1】:

    据我所知,Crystal 中的公式不能引用自身。 Crystal 总是会给你一个错误。您可以做的是将值存储在公式中,然后在另一个公式中引用它们。因此,您可以创建 Moisture1、Moisture2 等,然后引用它们。有点相同,但在我看来,从维护的角度来看,写作少了一点,而且更好。如果任何来源发生变化,您将必须检查所有公式并进行更改,而如果您将值存储在公式中,则只需更改一个公式。

    示例:

    @Moisture1 公式将包含以下代码:

    {VIEW_SPECS.SOURCE_1_MOISTURE}
    

    检查条件(if/else)的其他公式如下所示:

    if......then {@Moisture1}
    if......then {@Moisture2}
    

    ...等等。

    【讨论】:

    • 一个公式如何引用另一个公式的值?
    • 请查看我的答案的修订版。
    • 好的,公认的答案是你不能做我想做的事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多