2012-12-13 1 views
2

Хотя для отдельных частей этого вопроса есть много примеров кода, как неофит с конструктором отчетов, я не могу получить синтаксис для этого правильного.Дизайнер отчетов - Nest IIF внутри суммы с несколькими наборами данных

У меня есть текстовое поле, в котором я хочу отобразить СУММУ «Held Hours» из одного из трех наборов данных, и это определяется другим полем в том же наборе данных, который имеет значение «H.».

Так что, взяв его в куски, это работает, чтобы суммировать ВСЕ часы в ReportDataset.

=Sum((Fields!RegHrs.Value + Fields!OvtHrs.Value),"ReportDataset") 

Теперь, как-то мне нужно вложить это в IIF. Мне нужно, чтобы выражение SUM являлось «истинным» возвратом из IIF, когда BillStatus = «H.»

IIF(Fields!BillStatus.Value = "H",true,false) 

Я не могу показаться, чтобы выяснить, как совместить IIF и SUM так, что они вытягивают из «ReportDataset» и синтаксически правильно.

Я пытался различные перестановки этого:

=Sum(IIF(Fields!BillStatus.Value = "H",((Fields!RegHrs.Value + Fields!OvtHrs.Value),"ReportDataset"),0)) 

Любые указатели?


Новая информация:

следующие отчеты как синтаксически правильный, но дает мне 0 возвращаемого значения.

=Sum(IIF(Fields!BillStatus.Value = "H", (Fields!RegHrs.Value + Fields!OvtHrs.Value),0),"ReportDataset") 

Должно быть возвращено сотни часов.

ответ

1

Попробуйте вложенную сумму:

=Sum(IIF(Fields!BillStatus.Value = "H", Sum(Fields!RegHrs.Value + Fields!OvtHrs.Value,"ReportDataset"),0),"ReportDataset") 

Или:

=IIF(Fields!BillStatus.Value = "H", Sum(Fields!RegHrs.Value + Fields!OvtHrs.Value,"ReportDataset"),0) 
+1

Whoa! Отлично. Второй вариант дает мне значения. Я не знаю, почему, но я буду работать с ним. Теперь я не знаю, правильны ли мои ценности, но я ПОЛУЧАЮ их, и по крайней мере теперь могу массировать свой запрос, чтобы получить точную информацию. Спасибо, гл. Я ценю ответ. – DJGray

+0

Follow Up: Чтобы заставить это работать, мне пришлось преобразовать возвращаемые значения. На данный момент я использую CDec (Fields! RegAmt.Value) и т. Д. Это дает мне четыре десятичных знака, и я не вижу возможности ограничить это двумя. Как это делается? – DJGray

+0

Решенный!Если в моем запросе для создания набора данных я сделаю следующее, два десятичных знака будут соблюдены в самом отчете. литье (RegHrs как числовое (10,2)) как «RegHrs», литье (OvtHrs как числовое (10,2)) как «OvtHrs», – DJGray

1

Можете ли вы сделать это в своем наборе данных, используя SQL? Если это так, просто используйте следующую команду:

SELECT CASE WHEN BillStatus = 'H' THEN RegHrs + OvtHrs END AS HeldHours 
FROM MyTable 

Тогда все, что вам нужно сделать, это сумма в этом поле:

=Sum(Fields!HeldHours.Value, "ReportDataSet") 
+0

Крис, помня, что я новичок в Report Designer, этот вопрос может показаться не таким inane Какова наилучшая практика в отношении DataSet? Мне сказали, что я хочу как можно меньше, поэтому я построил «ReportDataset», чтобы разместить все, что я мог себе представить, для этого отчета. Мне сложно запросить мой DataSet из отчета. Я склонен хотеть рассматривать это как таблицу, но считаю, что это не работает. (Продолжение) – DJGray

+0

Я не могу «выбрать из» моего DataSet. То, что я хочу сказать выше, - создать несколько DataSets, каждый из которых имеет свой собственный уникальный взгляд на данные; один для Held Hours, другой для Billable, третий для дохода NonLabor и т. д. Я чувствую, что вы знаете что-то об этом Дизайнере отчетов. Какая здесь самая лучшая практика? – DJGray

Смежные вопросы