0

我的目标是从 Visual Studio 2008 中的 SSRS 表达式在我的 *.rdl 报告中获得以下结果。DueDate 和 InvoiceAmt 是绑定字段(fields!duedate.Value 和 fields!valuehome_1)。“NotDueYet”和“0-30 Days”是引用绑定字段的表达式的别名。

ClientInvoice>>>DueDate>>>InvoiceAmt>>>>NotDueYet>>>>0-30 天
4502767-00>>>>4/8/2013>>>>$75.89>>>>>>>>>>> >>>>>>>>>75.89 美元

4505151-00>>>>2013 年 4 月 11 日>>>137.26 美元>>>>>>>137.26 美元

总计:>>>>>>>>>>>>>>>>>>> $213.15 >>>>>>> $ 137.26 >>>>>> $75.89

问题:在别名列“NotDueYet”和“0-30 天”中,根据我下面支持总计的 iif/sum/datediff 表达式,总计应该是仅出现在这些列中的详细金额(参见上面的示例) . 明细金额基于引用 Duedate 和 InvoiceAmt 绑定字段的表达式。相反,我得到以下结果;

ClientInvoice>>>DueDate>>>InvoiceAmt>>>>NotDueYet>>>>0-30 天
4502767-00>>>>4/8/2013>>>>$75.89>>>>>>>>>>> >>>>>>>>>75.89 美元

4505151-00>>>>2013 年 4 月 11 日>>>137.26 美元>>>>>>>137.26 美元

总计:>>>>>>>>>>>>>>>>>>> $213.15 >>>>> ?>> $0.00 >>>>>>>> $ 213.15

这是我对每个领域的表达;

发票金额(详细信息):

=(fields!valuehome_1.Value)

发票金额(总计):

=Sum(fields!valuehome_1.Value)

NotDueYet(详细信息):

= iif(datediff("d",fields!duedate.Value,now())<= 0 
and (fields!valuehome_1.value>0),fields!valuehome_1.Value,"")

NotDueYet(总计):

= iif(datediff("d",fields!duedate.Value,now())<= 0 
and (fields!valuehome_1.value>0),SUM(fields!valuehome_1.Value),0)

0-30 天(详情):

= iif(datediff("d",fields!duedate.Value,now())>0 
and (datediff("d",fields!duedate.Value,now())<31 
and (fields!valuehome_1.value>0),fields!valuehome_1.Value,"")

0-30 天(总计):

= iif(datediff("d",fields!duedate.Value,now())>0 
and (datediff("d",fields!duedate.Value,now())<31 
and (fields!valuehome_1.value>0),SUM(fields!valuehome_1.Value),0)

我感谢任何帮助解决这个谜团。谢谢你。

4

1 回答 1

0

嵌套不太正确:试试这些表达式:

对于 NotDueYet(总计):

=SUM(
    iif(datediff("d",fields!duedate.Value,now())<= 0
        and (fields!valuehome_1.value>0),
      fields!valuehome_1.Value,
      0))

0-30 天(总计):

= SUM(
   iif(datediff("d",fields!duedate.Value,now())>0
       and (datediff("d",fields!duedate.Value,now())<31 
       and (fields!valuehome_1.value>0),
      fields!valuehome_1.Value,
      0))

我认为这应该得到你所追求的。

于 2013-04-12T02:14:26.620 回答