【问题标题】:Crystal report dynamic formula name水晶报表动态公式名称
【发布时间】:2012-04-30 13:38:31
【问题描述】:

这就是我所拥有的。我有 15 个独特的公式,分别命名为 Week1、Week2、... Week15。我希望能够获取一个参数名称 MYCount,并使用它来遍历记录并对它们求和。因此,如果 MyCount 等于 3,则循环将汇总 Week1 + Week2 + Week3。我知道如何创建一个循环,但我不知道如何动态构建公式名称。到目前为止,这是我所拥有的:(我正在使用 Crystal Xi)

 Whileprintingrecords;
 local NumberVar i := {?MyCount}
 For i := 1 To (MyCount-1) Do (
    i = {@Week & "i"} + i
 );
 x

【问题讨论】:

  • 你能贴出一周公式之一的逻辑吗?

标签: crystal-reports crystal-reports-2010


【解决方案1】:

我认为你可能过于复杂了。为什么不这样做:

Local numbervar x := 0;
If param > 0 then
 X := x + week1;
If param > 1 then
 X := x + week;
And so on...
 X;

【讨论】:

  • 感谢您的快速回复。公式会变得非常大。我最终将有大约 100 周。我希望避免将它们全部列出,因为我将有几个不同的公式来计算这些总和。
  • 谢谢你,我终于明白你的意思了。看不到树木之间的森林...谢谢
【解决方案2】:

我不完全是你想要做的,但你可能想考虑另一种方法。

创建将根据日期字段的周数对字段进行分段的公式:

//{@amount}
// adjust firstDayOfWeek and firstDayOfYear parameters to match your organization's
// definition of a week
If DatePart("ww", {table.dateField})<={?Week} Then
  {table.amount}

在公式字段中插入汇总字段。

【讨论】:

    【解决方案3】:

    如果您使用 @Weekn 公式字段以便在页面上按日期进行汇总,那么您是否考虑过使用 Crystal 的 Crosstab 功能?

    【讨论】:

    • 不幸的是我不能这样做。我只需要总结某些周。我真的希望我可以用变量建立一个公式名称。
    • @Mike:您可以通过仅选择相关周(如果您根本不需要其他周)或设置一个公式来保存相关周的值(如果您需要显示但不总结其他周)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2012-02-06
    • 1970-01-01
    相关资源
    最近更新 更多