Некорректная работа IIF

Обсуждение Stimulsoft Reports.NET
Ответить
Андрей
Сообщения: 5
Зарегистрирован: 10 ноя 2008, 07:45

Некорректная работа IIF

Сообщение Андрей »

Доброе время суток. Есть проблема следующего плана. Использую функцию IIF для проверки знаменателя на ноль, но функция все равно проверяет значения обоих веток. Сначала подумал, что где-то ошибся, но сделал банальный пример, который выдал сообщение об ошибке, хотя не должен был выдать:
{IIF(1 != 1, 1/0, 0)}
В этом примере должно было вернуться 0, а ветка 1/0 не должна была вообще обрабатываться! Помогите, пожалуйста!
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Некорректная работа IIF

Сообщение Edward »

Здравствуйте, Андрей.

Измените, пожалуйста, Ваше выражение следующим образом:

Код: Выделить всё

{IIF(1 != 1, Div(1,0), 0)}
Спасибо.
banzai17
Сообщения: 17
Зарегистрирован: 03 сен 2012, 10:07

Re: Некорректная работа IIF

Сообщение banzai17 »

Привет! Вопрос. Почему при выполнении (или невыполнении) условия, вместо {ActReport.Car},{ActReport.Fuel} и др. не подставляются значения из источника данных?

Код: Выделить всё

{(ActReport.IsOwnerCar==true)?"Проезд определить личным автотранспортом {ActReport.Car},  расход бензина  {ActReport.Fuel}л на 100км. пути, общее расстояние ActReport.Distanse км.\r\n\tНа основании вышеизложеного прошу Вас обеспечить финансирование для оплаты командировочных расходов":"На основании вышеизложеного прошу Вас обеспечить финансирование для оплаты командировочных расходов (найма жилья, расход суточных и на проезд личным автотранспортом)."}
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Re: Некорректная работа IIF

Сообщение Jan »

Здравствуйте,

Вот верное выражение:

Код: Выделить всё

{(ActReport.IsOwnerCar==true)?"Проезд определить личным автотранспортом" + ActReport.Car + ",  расход бензина  " + ActReport.Fuel + "л на 100км. пути, общее расстояние " + ActReport.Distanse + " км.\r\n\tНа основании вышеизложеного прошу Вас обеспечить финансирование для оплаты командировочных расходов":"На основании вышеизложеного прошу Вас обеспечить финансирование для оплаты командировочных расходов (найма жилья, расход суточных и на проезд личным автотранспортом)."}
Спасибо.
banzai17
Сообщения: 17
Зарегистрирован: 03 сен 2012, 10:07

Re: Некорректная работа IIF

Сообщение banzai17 »

Большое спасибо,Jan! Вы мне очень помогли.
А возможно ли добавить вложенное условие типа:

Код: Выделить всё

{(ActReport.IsOwnerCar==true)?"Проезд определить личным автотранспортом" + ActReport.Car + ",  расход бензина  " + ActReport.Fuel + "л на 100км. пути, общее расстояние " + ActReport.Distanse + " км.\r\n\tНа основании вышеизложеного прошу Вас обеспечить финансирование для оплаты командировочных расходов":"На основании вышеизложеного прошу Вас обеспечить финансирование для оплаты командировочных расходов ([b] ActReport.IsHouse==true?найма жилья,:""[/b] расход суточных и на проезд личным автотранспортом)."}
?
Aleksey
Сообщения: 2908
Зарегистрирован: 22 апр 2010, 06:57

Re: Некорректная работа IIF

Сообщение Aleksey »

Здравствуйте,

Вот верное выражение:

Код: Выделить всё

{(ActReport.IsOwnerCar==true)?"Проезд определить личным автотранспортом" + ActReport.Car + ",  расход бензина  " + ActReport.Fuel + "л на 100км. пути, общее расстояние " + ActReport.Distanse + " км.\r\n\tНа основании вышеизложеного прошу Вас обеспечить финансирование для оплаты командировочных расходов":"На основании вышеизложеного прошу Вас обеспечить финансирование для оплаты командировочных расходов (<b>" + (ActReport.IsHouse==true ? "найма жилья," : "</b> расход суточных и на проезд личным автотранспортом).")}
Для выделения тэгами <b> и </b> необходимо включить свойство AllowHtmlTags для текстового компонента.

Спасибо.
Ответить