我需要一些帮助来分解并尝试理解这个公式字段。我正在尝试将 Crystal Reports 转换为 Power BI Paginated,并且需要对我们现有的报表进行逆向工程。问题是我对水晶报表没有任何经验。共享变量是在这里分配的还是只是被调用到公式中?我之所以问这个问题,是因为我已经查看了与此相关的所有其他子报表,但在公式字段中的其他任何位置都找不到此处列出的变量(ValueHead、ValueMaroonHead1、ValueMaroonHead2)。它仅存在于该子报表中。这是名为 ValueCurrent 的公式字段的公式,然后在主报告中多次使用该公式。
shared numbervar ValueHead;
shared numbervar ValueMaroonHead1;
shared numbervar ValueMaroonHead2;
if {CombinedActiveParameterValueR.ParameterID} in [22,29,78]
and {CombinedActiveParameterValueR.ParameterDate} > {?Pm-@Date}-7
and {CombinedActiveParameterValueR.ParameterDate} <= {?Pm-@Date}
and {CombinedActiveParameterValueR.UpdateCounter} = Maximum ({CombinedActiveParameterValueR.UpdateCounter}, {CombinedActiveParameterValueR.ParameterDate}, "daily") then
ValueHead := ValueHead + {CombinedActiveParameterValueR.ParameterValue};
if {CombinedActiveParameterValueR.ParameterID} = 13 and {CombinedActiveParameterValueR.ParameterDate} > {?Pm-@Date}-7 and {CombinedActiveParameterValueR.ParameterDate} <= {?Pm-@Date} and {CombinedActiveParameterValueR.UpdateCounter} = Maximum ({CombinedActiveParameterValueR.UpdateCounter}, {CombinedActiveParameterValueR.ParameterDate}, "daily") then
ValueMaroonHead1 := ValueMaroonHead1 + {CombinedActiveParameterValueR.ParameterValue};
if {CombinedActiveParameterValueR.ParameterID} = 14 and {CombinedActiveParameterValueR.ParameterDate} > {?Pm-@Date}-7 and {CombinedActiveParameterValueR.ParameterDate} <= {?Pm-@Date} and {CombinedActiveParameterValueR.UpdateCounter} = Maximum ({CombinedActiveParameterValueR.UpdateCounter}, {CombinedActiveParameterValueR.ParameterDate}, "daily") then
ValueMaroonHead2 := ValueMaroonHead2 + {CombinedActiveParameterValueR.ParameterValue};
ValueHead
如果我将第一部分转换为伪英语,会是:
if(计算)then valuehead 也等于 valuehead + SQLFieldValue
基本上,我尝试在谷歌上搜索共享 numbervar 语法以了解它的常用用法,所以我知道当设置变量时(这可以在子报告中完成,然后调用到主报告中),但我无法在其他地方找到我上面提到的 3 个变量。
我已经检查了与该报告相关的所有子报告(甚至是隐藏的子报告)并浏览了公式字段,但没有运气。
您是否不仅搜索了所有公式,还搜索了所有表达式?
Crystal 允许您使用表达式来动态控制许多属性。 根据共享变量名称,它们很可能在表达式中用于有条件地控制某些标题部分/对象的颜色。
也许尝试将报告导出为“报告定义”格式并搜索结果文档。