【问题标题】:IIF in microsoft report builder微软报告生成器中的 IIF
【发布时间】:2020-01-16 21:22:21
【问题描述】:

我需要在 micorsoft 报表生成器中将 IIF 插入到以下表达式中,但我不断收到错误消息。我想说如果 >1,1,""

=Round((Fields!percent_excellent.Value + Fields!percent_good.Value) * 100,0) & "% (" & Round(((Fields!percent_excellent.Value + Fields!percent_good.Value) - Fields!peer_group .Value) * 100,0) & "%)"

【问题讨论】:

标签: reporting-services iif


【解决方案1】:

我不知道您尝试了什么,但这应该可以:

=IIF(Round((Fields!percent_excellent.Value + Fields!percent_good.Value) * 100,0) > 1,
    100, 
    Round((Fields!percent_excellent.Value + Fields!percent_good.Value) * 100,0)) & 
"% (" & Round(((Fields!percent_excellent.Value + Fields!percent_good.Value) - Fields!peer_group.Value) * 100,0) & "%)"

我认为你最好使用 FORMATPERCENT 来格式化你的数字,设置小数位数并添加百分号。

=FORMATPERCENT(
    IIF(
        (Fields!percent_excellent.Value + Fields!percent_good.Value) * 100 > 1, 
            1, 
            (Fields!percent_excellent.Value + Fields!percent_good.Value) * 100
        )
    , 0) & " ("
 FORMATPERCENT(((Fields!percent_excellent.Value + Fields!percent_good.Value) - Fields!peer_group.Value) * 100, 0) & ")"

【讨论】:

  • 最好不要在表达式中进行任何格式化,而只在文本框的格式属性中使用"p0""p0" 将值 0.1234 显示为 12%,类似 "p2" 将显示相同的 2 位小数,即 12.34%
  • 显示为百分比不是问题。我从调查中下载数据,并输入回复。这是两者加起来超过 100 (101%) 的地方。如果大于 1 (100%),我希望它执行,然后 1,否则它应该是什么。
  • 使用以下返回的所有值 1 =IIF(Round((Fields!percent_excellent.Value + Fields!percent_good.Value) * 100,0)>1,1,"") & "% (" & Round(((Fields!percent_excellent.Value + Fields!percent_good.Value) - Fields!peer_group.Value) * 100,0) & "%)"
  • @AlanSchofield - 在这种情况下他不能使用 Text Box FORMAT 属性 - 在一个文本框中有两个不同的值(即75% (12%))。
  • @Stasia - 你没有显示percent_excellentpercent_excellent 的值。我在想也许你不应该将它们乘以 100。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多