|
![]() |
#1 |
Участник
|
Да я согласен, что передают и * и , и т.д. Возможно что дело именно в использовании SysQuery::value();
Вот если делать так то получатся совсем разные вещи. X++: queryBuildDataSource.addRange(fieldNum(InventTrans,ItemId)).value(SysQuery::value("123,124"); queryBuildDataSource.addRange(fieldNum(InventTrans,ItemId)).value("123,124"); Хотя нет, если сделать так то итог одинаковый будет X++: queryBuildDataSource.addRange(fieldNum(InventTrans,ItemId)).value(SysQuery::value("< 123")); queryBuildDataSource.addRange(fieldNum(InventTrans,ItemId)).value("< 123"); Последний раз редактировалось maldini; 02.03.2012 в 14:53. |
|
![]() |
#2 |
Участник
|
Да, в первом случае будет выбираться значение ItemId="123,124", а во втором - значения ItemId="123" и ItemId="124".
Все же, видимо, разработчики, посчитали нужным оставить символы "!?<>" зарезервированными, т.е. использующимися для задания критериев фильтрации.
__________________
С уважением, Александр. |
|
![]() |
#3 |
Участник
|
Цитата:
Хотя нет, если сделать так то итог одинаковый будет
queryBuildDataSource.addRange(fieldNum(InventTrans,ItemId)).value(SysQuery::value("< 123")); queryBuildDataSource.addRange(fieldNum(InventTrans,ItemId)).value("< 123"); Цитата:
Получается что если в SysQuery.Value добавить <> в quotableStr, то получится если передавать значения в range через SysQuery::value() эти символы будут экранироваться, а если стандартным фильтром то все останется как раньше.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 02.03.2012 в 15:01. |
|
![]() |
#4 |
Участник
|
Зачем строковое значение сравнивать используя <>
|
|
![]() |
#5 |
Участник
|
Это вопрос?
Если да, то по стандарту SQL для операции сравнения "не равно", используется 2 последовательности - <> и != , а ! это чисто аксаптовское изобрЕтиние!
__________________
Axapta 3.0 sp - хз какой, kr2 |
|
![]() |
#6 |
Участник
|
Я не имел ввиду <> не как не равенство, я имелл ввиду зачем сравнивать ItemId > "Текст" или ItemId < "Текст". Ну хотя это только в данном случае. Вобщем вопрос который хочется как то решить, что бы избежать в будущем более серьезных проблемм, например при обновлении по условию кто нибудь укажет такое условие что обновится не одна запись а куча, а все из за ><.
|
|
![]() |
#7 |
Участник
|
Цитата:
Зачем строковое значение сравнивать используя <>
Например, в случае c большым количеством номенклатур с числовым ключом, необходимо отобрать номенклатуры с номером больше "50000". В этом случае, можно использовать данную конструкцию: X++: queryBuildDataSource.addRange(fieldNum(InventTable,ItemId)).value(">50000") X++: queryBuildDataSource.addRange(fieldNum(InventTable,ItemId)).value("50000..") Пример: X++: queryBuildDataSource.addRange(fieldNum(1, 1)).value(">ABC")
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 02.03.2012 в 17:51. |
|
![]() |
#8 |
Участник
|
Да я полностью согласен, но вопрос так и остался открытым, как бороться с этим? Ведь никто не знает что пользователь завтра придумает в именах или номерах, что приведет к ошибкам, которые могут очень сильно навредить.
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|