Возможно неправильная работа IIF
Добавлено: 22 дек 2010, 12:05
Доброго времени суток, уважаемые!
Делал отчёт и обнаружил, что команда IIF не работает, вернее работает некорректно.
В приложении сделал примитивный отчёт, который показывает ошибку:
Expression in Text property of 'Text1' can't be evaluated! startIndex cannot be larger than length of string. Parameter name: startIndex
В отчёте стоит выражение {IIF(BoolVar, Var1, Substring(Var1, 20, 5))}. При этом BoolVar = true, а Var1 = 'Тестовая строка' (15 символов).
Ошибка возникает, видимо по причине того, что IIF cначала вычисляет значение, которое выводится, если BoolVar = true, а потом сразу вычисляет (не понятно зачем, из-за этого и возникает ошибка) Substring(Var1, 20, 5), которое я поставил намеренно. То есть, если поставить туда Div или что-либо ещё, оно также будет вычисляться, что неправильно, т.к. вычисляться должна именно та часть, кот. подходит под условие (true или false), что логично.
Делал отчёт и обнаружил, что команда IIF не работает, вернее работает некорректно.
В приложении сделал примитивный отчёт, который показывает ошибку:
Expression in Text property of 'Text1' can't be evaluated! startIndex cannot be larger than length of string. Parameter name: startIndex
В отчёте стоит выражение {IIF(BoolVar, Var1, Substring(Var1, 20, 5))}. При этом BoolVar = true, а Var1 = 'Тестовая строка' (15 символов).
Ошибка возникает, видимо по причине того, что IIF cначала вычисляет значение, которое выводится, если BoolVar = true, а потом сразу вычисляет (не понятно зачем, из-за этого и возникает ошибка) Substring(Var1, 20, 5), которое я поставил намеренно. То есть, если поставить туда Div или что-либо ещё, оно также будет вычисляться, что неправильно, т.к. вычисляться должна именно та часть, кот. подходит под условие (true или false), что логично.