2014-09-05 2 views
0

Я новичок в SSRS 2012. Я нашел много ответов на протяжении всего обучения на этом форуме, поэтому я решил присоединиться и, надеюсь, я смогу помочь другим а также в их обучении. У меня есть один вопрос, хотя я не могу найти ответа.Выражения отчета - выражения выражений Cognos, переведенные в SSRS 2012 Выражения отчета

В настоящее время мы используем отчеты Cognos для наших отчетов, но переходим к Microsoft Reporting Services 2012 (SSRS). Выражения отчета в Cognos не такие же, как в Microsoft Reporting Services, поэтому это вызывает у меня проблемы. Это, конечно же, приводит к новым возможностям обучения.

Этот запрос из Cognos:

if([query1].[fw.ShipQty] > 0) then [query1].[fw2_cost]/[Query1].[fw2_ShipQty]. 

Я не знаю, как я бы его выписывать. Я понимаю, что я могу писать это неправильный путь, но ниже, как я написал в Reporting Services Microsoft Expression Builder:

=IIF(Fields!fw1_ShipQty.value > 0, Fields!fw1_cost.Value/Fields!fw1_ShipQty) 

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

ответ

0

Похоже, что вы пытаетесь избежать деления на нулевую ошибку. (Я так же, как Microsoft Clippy).

Ваша проблема в том, что функция IIF всегда оценивает все предложения, переданные независимо от того, какая часть (истинное значение или ложное значение) возвращается.

Короче говоря, вы по-прежнему получите деление на нулевую ошибку в предложении, даже если сначала проверяете нуль. Вам придется передумать, как вы тестируете деление на нулевые ошибки.

Следующая хорошая advice provided on MSDN:

С SSRS использовать шаблон, как это, чтобы избежать деления на ноль:

=iif(B=0, 0, A/iif(B=0, 1, B)) 
+0

RThomas, спасибо вам большое за ваш вклад. Это именно то, что я искал! Я также узнал, как работает ИИФ. Еще раз спасибо! – Neeru

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