2013-04-11 1 views
0

Моя цель - получить следующий результат в моем отчете * .rdl из моих выражений SSRS в visual studio 2008. DueDate и InvoiceAmt являются связанными полями (поля! Duedate.Value и поля! Valuehome_1). «NotDueYet» и «0-30 Days» - это псевдонимы с выражениями, ссылающимися на связанные поля.Как суммировать с использованием датированного в SSRS

ClientInvoice >>> DueDate >>> InvoiceAmt >>>> >>>> NotDueYet 0-30 дней
4502767-00 >>>> >>>> 4/8/2013 $ 75,89 >>>>> >>>>>>>>>>>>>>> $ 75,89

4505151-00 >>>> 4/11/2013 >>> $ 137,26 >>>>>>> $ 137,26

Итого : >>>>>>>>>>>>>>>>>>>$ 213,15 >>>>>>>$ 137,26 >>>>>>$ 75,89

Проблема: В столбцах «Псевдоним» «NotDueYet» и «0-30 дней», основываясь на моих iif/sum/датичных выражениях ниже поддержки итогов, итоговые суммы должны быть из подробных сумм, которые отображаются только в этих столбцах (см. Выше образец). И суммы деталей основаны на выражениях, ссылающихся на связанные границы Duedate и InvoiceAmt. Вместо этого я получаю следующие результаты;

ClientInvoice >>> DueDate >>> InvoiceAmt >>>> >>>> NotDueYet 0-30 дней
4502767-00 >>>> >>>> 4/8/2013 $ 75,89 >>>>> >>>>>>>>>>>>>>> $ 75,89

4505151-00 >>>> 4/11/2013 >>> $ 137,26 >>>>>>> $ 137,26

Итого : >>>>>>>>>>>>>>>>>>>$ 213,15 >>>>> >>$ 0,00 >>>>>>>>$ 213,15

?

Вот мои выражения для каждого поля;

InvoiceAmt (подробно):

=(fields!valuehome_1.Value) 

InvoiceAmt (ВСЕГО):

=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 дней (Detail):

= 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 дней (TOTAL):

= 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) 

Я признателен за любую помощь в решении этой тайны. Спасибо.

ответ

0

вложенности не совсем верно: Попробуйте эти выражения:

Для NotDueYet (TOTAL):

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

0-30 дней (TOTAL):

= 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)) 

Я думаю, который должен получить то, что вам нужно.

+0

Спасибо за ответ. Тем не менее, я получаю значение #ERROR в результате для каждого столбца. ClientInvoice >>> DueDate >>> InvoiceAmt >>>> NotDueYet >>>> 0-30 дней 4502767-00 >>>> 4/8/2013 >>>> $ 75.89 >>>>>>>> >>>>>>>>>>>> $ 75.89 4505151-00 >>>> 4/11/2013 >>> $ 137.26 >>>>>>> $ 137.26 Всего: >>>>>>> >>>>>>>>>>>> $ 213.15 >>>>>? >> # ERROR >>>>>>>> # ERROR Если в двух столбцах есть оба счета-фактуры, я получаю правильную сумму. ClientInvoice >>> DueDate >>> InvoiceAmt >>>> NotDueYet >>>> 0-30 дней 4502767-00 >>>> 4/8/2013 >>>> $ 75.89 >>>>>>> $ 75.89 4505151-00 >>>> 4/11/2013 >>> $ 137.26 >>>>>>> $ 137.26 Всего: >>>>>>>>>>>>>>>>>>>>>>>>>>>>> $ 213.15 >>>>>>>> $ 213,15 –