|
27.04.2015, 20:37 | #1 |
Участник
|
Цитата:
Есть enum поля. делаю outer join с таблицей, содержащей их, для отчета. В итоге отчет выводит там где соединения не произошло все равно первое(0) значение енума, а должен пустое. Каким образом это сделать. При заполнении поля проверять поле "неенум типа" этой таблицы и если оно пустое, то тогда и енум поля заполнять пустым? |
|
27.04.2015, 21:55 | #2 |
Участник
|
Цитата:
Сообщение от trudel
помогите изучить. Книги на русском дают элементарные сведения, в справке на английском порой и не знаешь что искать. короче гуглю по вашему форуму и так учусь. что не нагуглю - спрашиваю.
Есть enum поля. делаю outer join с таблицей, содержащей их, для отчета. В итоге отчет выводит там где соединения не произошло все равно первое(0) значение енума, а должен пустое. Каким образом это сделать. При заполнении поля проверять поле "неенум типа" этой таблицы и если оно пустое, то тогда и енум поля заполнять пустым? X++: If (table) { return table.field; } else { return ""; } |
|
|
За это сообщение автора поблагодарили: trudel (1). |
28.04.2015, 01:03 | #3 |
NavAx
|
В AX запросы обычно разбивают на несколько. Т.е. описанный пример, если я его правильно понимаю, можно реализовать примерно так:
select a where a.trailerId = ...; select b where b.Id == a.carId; if(b) { select c where... } else { color = "оранжевый"; } т.е. работаешь скорее не как с запросом, а как с функциями, заполняющими объект данными.
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 28.04.2015 в 02:25. |
|
|
За это сообщение автора поблагодарили: trudel (1). |
28.04.2015, 11:24 | #4 |
Участник
|
Цитата:
Сообщение от trudel
Есть enum поля. делаю outer join с таблицей, содержащей их, для отчета. В итоге отчет выводит там где соединения не произошло все равно первое(0) значение енума, а должен пустое. Каким образом это сделать. При заполнении поля проверять поле "неенум типа" этой таблицы и если оно пустое, то тогда и енум поля заполнять пустым?
Axapta не в состоянии отличить состояние "нет значения", от "нулевого" значения поля. Значение NULL просто не поддерживается. Более того, для Enum вообще не существует понятия "пустого" (нулевого) значения, поскольку, как правило, нумерация в Enum как раз и начинается с нуля. Т.е. применительно к Enum отличить "пустое" от "не пустого" значения невозможно "в принципе" Только по значению других полей. Ну, за исключением случаев, когда нумерация Enum сделана "не стандартно" (разные есть варианты) В общем случае, по возможности, любые типы соединений, отличные от inner join лучше вообще избегать. Сопровождать такие запросы, если возникает желание как-то расширить функциональность, слишком сложно и накладно. По возможности, используйте различные альтернативы. От заполнения временных таблиц для отчета, до различных дисплейных методов. В Вашем случае, вероятно, подойдет вариант решения, использованный в формах SalesTable и PurchTable для отображения значений на закладках "Разноска", где отображаются номера и даты последних разнесенных документов разных типов.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 28.04.2015 в 11:30. |
|
28.04.2015, 15:11 | #5 |
Участник
|
После работы чисто со sql сложно перестроиться.. как раз таки хочется слепить большой запрос с различными джоинами ...
Еще вопрос, есть ли аксе12 пример выбора сразу нескольких значений из списка для фильтра. Мне надо выбрать несколько значений из enumа и передать отчету. создал расширенный тип на него, но поле lookup дает выбрать только одно значение. |
|
28.04.2015, 15:40 | #6 |
Участник
|
Цитата:
И вообще, Аксапта всегда инициализирует числовые поля 0-лями, а текстовые поля пустой строкой "". Последний раз редактировалось Ace of Database; 28.04.2015 в 15:44. |
|