AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.02.2008, 18:57   #1  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Значение по умолчанию параметра типа EDT c array elements либо просто массива
Ребята, очередной вопрос из разряда: ламер хочет всё и сразу, поэтому не обессудте.

Во время написания парм метода для поля, которое базируется на EDT real типа с количеством ArrayElements равным двум, столкнулся с проблемой присвоения значений по умолчанию. 0, равно как и Null в качестве значения по умолчанию метод не принимает. Вспомнил, что есть известное EDT Dimensions с несколькими ArrayElements. От рациональности реализации парм-метода для поля, которое базируеццо на эту Идетешку просто офигел. При передаче параметра вызывается статический метод(на какой таблице уже не помню) и возвращает неинициализированную переменную этого же типа. Ну что-то на подобии

Хедер парма:
X++:
public Dimension parmDimesion(Dimension _dim =SomeTable::emptyDim())
функция таблицы КакоетоТабличко:

X++:
public static Dimension emptyDim()
{
    Dimension dim;
    ;
    return dim;
}
Выглядит дико, но хотя бы работает. Что интересно, такой трюк не проходит с массивными EDT, которые базируются на числовые базовые типы(компиль ругается на несовместимость типов, хотя это, конечно же, бред).

Так же усложняет ситуацию то, что параметр по умолчанию может быть лишь один, поэтому такой трюк не пройдёт:
X++:
public Dimension parmDimesion(real x=0, y=0)
Опять таки, можно использовать в качестве параметра обьект типа лист, рек или контейнер, но таким образом в метод можно будет передать какое угодно количество параметров и хоть внутри самого парма можно будет устроить проверку, реализация явно получится через одно место.

Конечно можно отказаться от использования массивного поля и разделить его релизацию в 2 отдельных поля, но это так же не выход. Может кто-нибудь из гуру сталкивался с такой проблемой, будет очень интересно узнать есть ли всё-таки для неё вразумительный солюшн. Зарание спасибо.
__________________
Axapta has seduced me deadly!

Последний раз редактировалось HorrR; 18.02.2008 в 19:10.
Теги
ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
EDT как Array KingPeas DAX: Программирование 16 17.06.2008 10:40
Почему компилятор не позволяет объявлять переменные EDT типа SessionId? Morpheus DAX: Программирование 1 06.06.2007 11:23
Как при вводе новой записи установить значение поля по умолчанию Zman DAX: Программирование 3 17.01.2005 10:23
Значение по умолчанию в таблице bocman DAX: Программирование 4 15.08.2003 16:20
Фильтр по полю типа Enum, в котором чиловое значение? slava DAX: Программирование 1 08.05.2002 10:26

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:12.