08.09.2003, 14:38 | #1 |
Участник
|
str2Enum в Axapta 3.0
Добрый день!
Подскажите, не получается сделать селект, в котором бы не имело значение для enum поля. Пытаюсь сделать следущее: PHP код:
Помогите исправить запрос. Спасибо. |
|
08.09.2003, 15:25 | #2 |
----------------
|
попытка
Предполагаю, что Вам нужно следущее
PHP код:
|
|
08.09.2003, 15:48 | #3 |
Участник
|
Спасибо за ответ.
Но если предволожить, что value имеет тип char, то этот запрос не пройдет. Может я вас не так понял? |
|
08.09.2003, 16:21 | #4 |
----------------
|
Одно из двух
У меня все работает на InventTrans-е (нет тестовых данных в BOMCalcTrans)
PHP код:
|
|
08.09.2003, 16:30 | #5 |
Участник
|
Да, работает
Но только для строк с типом заказ. Если напписать: PHP код:
|
|
08.09.2003, 16:42 | #6 |
----------------
|
&& vs ||
естественно
PHP код:
|
|
08.09.2003, 16:59 | #7 |
Участник
|
эээ, возможно я что-то не понимаю...
Надо что бы была возможность выбрать все записи примерно так: PHP код:
|
|
08.09.2003, 17:49 | #8 |
----------------
|
Enum
Для начала следует понять, что такое _transType равен "", ведь InventTransType может иметь только целочисленные значения (0-255)
Возможные варианты решения: 1. В метод передаётся строка с текстом Enum-а (см. предыдущие постинги) 2. В метод передается int, который интерпретируется как Enum, если значения в диапазоне 0-255 и как отсутствие ограничений, если вне диапазона. Следовательно в select делается проверка на int-значение, а не "*" |
|
08.09.2003, 17:59 | #9 |
Участник
|
enum'ы не надо проверять на строки. Поскольку строки enum'ов на разных языках могут быть разными. Так например, запрос warmr про заказы не будет работать, если пользователь зайдет под английским интерфейсом.
enum - это число. И проверять надо числа. Строковое представление енума предназначено только для человека, а не компьютера. Чиатйте best practice. |
|
08.09.2003, 18:00 | #10 |
Участник
|
wamr, точно.
я не видел последнее сообщение, когда писал свое. |
|
08.09.2003, 18:08 | #11 |
----------------
|
еще варианты
1. Передавать 2 параметра boolean (есть ограничение?) и InventTransType (какое ограничение)
2. Передавать ограничение в виде QBE (range.value()) и использовать Query & QueryRun вместо select-а Эти варианты более предпочтительны |
|
08.09.2003, 18:13 | #12 |
Участник
|
О, отлично!
И как же мне сделать запрос, если скажем _transType = 0 ? Скажим, если бы я хотел выбрать стоку по itemId и itemId был бы входным параметром функции, то я бы написал следущее: PHP код:
|
|
08.09.2003, 18:17 | #13 |
Участник
|
Не успел прочитать про Query. Нат, к сожелинию в моем случае это не подходит, хотя это было бы идеальным выходом из ситуации. Я помню, что в 2.5 версии можно было написать
PHP код:
|
|
08.09.2003, 18:26 | #14 |
Участник
|
не извращайтесь и пользуйтесь запросами (query)
они как раз для таких случаев с динамическими фильтрами и предназначены. |
|
|
|