Microsoft SQL ReportBuilder 2012 3.0 中一个网格中的多个 iif

Multiple iifs in one grid in Microsoft SQL ReportBuilder 2012 3.0

我正在为我们公司的报告服务开具自动发票,但我开始 运行 遇到一些问题。发票是按月开具的,其中大部分只包含 'Hour Rate x Worked Hours'。然而,我们也与合作伙伴签订了一些合同,无论我们为他们工作花费了多长时间,我们每个月都会向他们收取固定金额。这是在显示应付金额的字段中编写的代码:

=SUM(Fields!DurationHours.Value * Fields!HourlyRate.Value)

是否可以使用 Iif 表达式创建字段(例如:=IIf(Fields!Customerid.Value = 30,"7000","0") 或者这不可行? 在此示例中,客户 30 应固定支付 7000。但我不知道该用什么代替零,因为如果 customerid 不是 30,它应该显示 'Hour Rate x Worked Hours'。如果可能的话,我应该如何输入更多的 customerids 因为我们有大约 10 个支付固定费用的合作伙伴价格。 提前致谢

当您要测试三个或更多条件时,切换功能很有用。 Switch 函数 returns 与一系列计算结果为真的第一个表达式关联的值:

=Switch( Fields!Customerid.value= 1,"1000", Fields!Customerid.value= 2,"2000", Fields!Customerid.value= 3,"3000", Fields!Customerid.value= 4,"4000", Fields!RCustomerid.value= 5,"5000", Fields!Customerid.value= 6,"6000", Fields!Customerid.value= 7,"7000", Fields!Customerid.value= 8,"8000", Fields!Customerid.value= 9,"9000", Fields!Customerid.value= 10,"10000",Fields!Customerid.value<>1 or Fields!Customerid.value<>2 or Fields!Customerid.value<>3 or Fields!Customerid.value<>4 or Fields!Customerid.value<>5 or Fields!Customerid.value<>6 or Fields!Customerid.value<>7 or Fields!Customerid.value<>8 or Fields!Customerid.value<>9 or Fields!Customerid.value<>10,SUM(Fields!DurationHours.Value * Fields!HourlyRate.Value))

只需替换为您的 Customerid。

如果我没理解错的话。

你可以像这样在 ELSE 中写总和

=IIF(Fields!Customerid.Value = 30 
     , "7000" 
     , SUM(Fields!DurationHours.Value * Fields!HourlyRate.Value) 
 )