25.09.2007, 18:16 | #1 |
Участник
|
Пропадает значение Range при экспорте проекта
Есть такой метод SysQuery::valueEmptyString(), который возвращает, так сказать, обозначение для пустого значения поля - две двойные кавычки. Если делать запрос не программно через всякие QueryBuildDataSource/QueryBuildRange, а "визуально" в AOT, то там нужно для поиска записей с пустым полем указать эти две двойные кавычки в значении Range. Все замечательно, запрос проверен, код, его использующий, отлажен, переносим проект на тестовое (или рабочее) приложение через экспорт-импорт. И тут-то нас ожидает подстава со стороны ядра Аксапты: при выгрузке запросов из AOT'а значение таких Range будет утеряно! Т.е. буквально вместо
Код: Value #"" Код: Value # Проверено на AX 3 SP3, AX3 KR3. |
|
26.09.2007, 10:07 | #2 |
Участник
|
Условие "" эквивалентно условию с незаданной строкой.
Чтобы задать условие "" в коде, кавычки надо экранировать бэкслешем \"\" То, что ядро трактует "" отлично от незаданной строки - ошибка ядра, а экспорт совершенно прав См. FAQ: http://axapta.mazzy.ru/lib/emptyqueryrange/ |
|
26.09.2007, 15:33 | #3 |
Участник
|
Цитата:
Цитата:
Цитата:
PS. На картинке слева "квадратик", с которым сравнивается CustInvoiceJour.LedgerVoucher, - это символ с кодом 2, которым Oracle обозначает пустые строки. Последний раз редактировалось gl00mie; 26.09.2007 в 15:43. |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
27.09.2007, 00:22 | #4 |
Участник
|
Хм... Пока остаюсь при своем. Но буду тестировать. Спасибо.
|
|