【问题标题】:How to write this Crystal Report formula as an SSRS Expression?如何将此 Crystal Report 公式编写为 SSRS 表达式?
【发布时间】:2019-03-05 08:49:00
【问题描述】:

我想将此 Crystal 公式转换为 SSRS 表达式:

公式:

 numberVar iDay := ToNumber(Right(Cstr({@PrntStartDate}), 2)) + 9;
    select iDay
     case 1 : {wk_TORIO0430_b.AcquisitionAmnt1}
     case 2 : {wk_TORIO0430_b.AcquisitionAmnt2}
     case 3 : {wk_TORIO0430_b.AcquisitionAmnt3}
     case 4 : {wk_TORIO0430_b.AcquisitionAmnt4}
     case 5 : {wk_TORIO0430_b.AcquisitionAmnt5}

如何在 SSRS 表达式中编写这个?

【问题讨论】:

  • 您坚持转换的哪一部分?我们可以看看你的作品吗?
  • @halfer 感谢您纠正我的错误先生,我是 StackOver 流程​​的新手,下次我会牢记指南
  • @halfer 先生,我需要转换这个 Crystal Report 公式,上面有 43 个公式,我需要转换它们,所以如果你知道的话,我请求你,请帮助我。
  • 你是否已经有一个SSRS参数来替换{@PrntStartDate}?你知道这个表达式在概念上做什么吗? select case 的 SSRS 等效项是 switchToNumber 的等价物是CInt 我认为
  • 如果一个月中的某一天(显然)加上 9,那么 iDay 怎么可能是 1 - 5?

标签: vb.net reporting-services ssrs-2008 activereports grapecity


【解决方案1】:

不完全确定第一行是做什么的,因为我自己不使用 Crystal Reports,但 Nick 在 cmets 中说,select case 可以使用switch 语句重写。修复第一行的可能解决方案是将类似的语句添加到计算字段并在开关中使用该字段。您必须弄清楚 numberVar iDay 行所使用的逻辑,以便您可以按原样放入。

=SWITCH(Fields!iDay.Value = 1, wk_TORIO0430_b.AcquisitionAmnt1,
        Fields!iDay.Value = 2, wk_TORIO0430_b.AcquisitionAmnt2,
        Fields!iDay.Value = 3, wk_TORIO0430_b.AcquisitionAmnt3,
        Fields!iDay.Value = 4, wk_TORIO0430_b.AcquisitionAmnt4,
        Fields!iDay.Value = 5, wk_TORIO0430_b.AcquisitionAmnt5)

【讨论】:

  • 我认为 iDay 是一个临时变量,而不是一个字段。 Fields!iDay.Value 应替换为 VAL(Right(Cstr(Parameters!PrntStartDate.value), 2)) + 9
  • 我无法破译第一行,所以我只回答了切换的逻辑。他将不得不弄清楚如何将iDay 设置为 1-5。如果他回应并澄清那条线,我会相应地更新我的答案。
  • @HannoverFist 感谢先生给我解决方案,但它不起作用,我试图替换 numberVar iDay := ToNumber(Right(Cstr({@PrntStartDate}), 2)) + 9; over VAL(Right(Cstr(Parameters!PrntStartDate.value), 2)) + 9 this 但我无法理解如何制作所有 This Expression 请帮助我。
  • @Steve-o169 正如我在上面写的代码 iDay 是变量而不是参数或字段,它是变量,我无法制作这个 SSRS 表达式,请帮助我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多