2013-12-09 74 views
0

是否可以在公式本身(在Crystal 8.5中)使用Crystal Reports公式的名称?在公式中获取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} 

不是为每一个公式打字了这一切的repetetive东西,可我得到的公式的名称公式本身,使每个公式将是这个样子:

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}} 

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

回答

1

据我所知在晶体公式不能引用自己。水晶总是会给你一个错误。你可以做的是在你的公式中存储值,然后在另一个公式中引用它们。所以你可以创建Moisture1,Moisture2等,然后引用它们。这是相同的,但在我看来,从维护的角度来看,写得更少,更好。如果有任何来源发生变化,您将不得不通过所有公式并对其进行更改,而如果将公式中的值存储在公式中,则只需更改一个公式。

例:

@ Moisture1公式将在它下面的代码:

{VIEW_SPECS.SOURCE_1_MOISTURE} 

您的其他公式为状态检查(if/else语句)将是这个样子:

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

...等等。

+0

一个公式如何从另一个公式中引用一个值? –

+0

请参阅修改我的答案。 –

+0

好的,接受的答案是你不能做我想做的事。 –