是否可以在公式本身(在Crystal 8.5中)使用Crystal Reports公式的名称?
例如,假设我有以下公式:
@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}}
我希望能够编写一次公式,并将其粘贴到每个公式的公式编辑器中,而不必修改每个公式。
答案 0 :(得分:1)
据我所知,在水晶中,公式无法引用自己。水晶总会给你一个错误。您可以做的是在公式中存储值,然后在另一个公式中引用它们。所以你可以创建Moisture1,Moisture2等,然后引用它们。它有点相同,但在我看来,从维护的角度来看,写作更少一点,也更好。如果任何来源发生变化,您将不得不通过所有公式并更改它,而如果您将值存储在公式中,则只需更改一个公式。
实施例
@ Moisture1公式将包含以下代码:
{VIEW_SPECS.SOURCE_1_MOISTURE}
检查条件的其他公式(if / else)看起来像这样:
if......then {@Moisture1}
if......then {@Moisture2}
......等等。