RDLC # Ошибка сводит меня с ума (промежуточные итоги на страницу)

У меня есть отчет с такой таблицей:

UserCode|RecordID|OriginatingBranch|OriginatingAccount|HomingBranch|HomingAccount|Amount|ActionDate|SeqNo|Onus|Homedback

Последние два столбца являются логическими, они содержат либо Y, либо N. Фактически, столбец Onus будет содержать только Ys. Мне нужно иметь промежуточный итог в конце каждой страницы, показывающий, сколько существует транзакций Onus и их стоимость, и то же самое для транзакций Onus.

Я пробовал несколько вещей, включая все описанное здесь, но когда я пытаюсь это сделать, в моем отчете остается невзрачный #Error. У меня нет ошибок, журналов или чего-то еще, только #Error, где у меня должен быть номер.

Теперь пытаюсь ответить от здесь, в котором говорится:

  1. Добавьте дополнительный столбец и введите это выражение: = Runningvalue (Fields! YourValue.Value, Sum, «yourtable1») и установите для его свойства hidden значение true.

  2. В верхнем или нижнем колонтитуле страницы используйте выражение: = Last (ReportItems! Textbox12.Value), чтобы получить промежуточный итог по всем предыдущим страницам (предположим, что строкой сведений в приведенном выше столбце является текстовое поле12)

Я положил это в свою таблицу, это мое выражение:

=RunningValue(IIF(Fields!HomedBack.Value="Y", Fields!Amount2.Value, 0),Sum,"Items")
//my tablix is called "Items" and my "Amount" field is a formatted string, 
//the actual value is kept in "Amount2"

И о чудо, я снова получаю знаменитый #Error. Моя первая строка содержит 0, а каждая следующая строка содержит #Error.

Я должен отметить, что я не просматриваю отчет в браузере или в интерактивном режиме, или что-то в этом роде, я использую старую библиотеку отчетов моей компании, которая ужасна и должна быть переписана (я хочу), и в значительной степени для этого требуется набор данных и RDLC и выводит его в PDF.

Что-то явно не так с моим выражением лица? Я новичок в RDLC, поэтому чувствую, что упускаю что-то глупое. Также есть ли способ показать, что на самом деле означают или соответствуют эти #Error?

Еще одно замечание: я разработал свой RDLC в VS2013, если это имеет значение.


person ldam    schedule 10.06.2014    source источник


Ответы (1)


SSRS может выдать #Error из-за несоответствия типа данных. Возможно, он оценивает Amount2 как строковое поле вместо числового. Чтобы избежать таких условий, сделайте явное преобразование.

Попробуй это:

=RunningValue(IIF(Fields!HomedBack.Value="Y", Fields!Amount2.Value*1.0, 0.0),Sum,"Items")

OR

=RunningValue(IIF(Fields!HomedBack.Value="Y", CDBL(Fields!Amount2.Value), 0.0),Sum,"Items")

OR

=RunningValue(IIF(Fields!HomedBack.Value="Y", CDEC(Fields!Amount2.Value), 0),Sum,"Items")
person Anup Agrawal    schedule 11.06.2014
comment
Я попытался использовать CLNG, и у меня возникла та же проблема, но спасибо за ответ. Я также попробую CDBL и CDEC. - person ldam; 12.06.2014