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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.10.2009, 16:50   #1  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Я проблему с fld_1 давно решил проство в класс Dialog я добавил такой метод
X++:
DialogField addFieldName(
    int         type,
    FieldLabel  label   = '',
    FieldName   _fieldName = '',
    FieldHelp   help    = ''
    )
{
    DialogField dialogField;
    fields += 1;
    dialogField = new DialogField(this,type,fields);
    dialogField.parmFieldName(_fieldName);
    this.addCtrlDialogField(dialogField.name());
    dialogField.init(this);
    if (label)
        dialogField.label(label);
    if (help)
        dialogField.helpText(help);
    this.addDialogClass(dialogField);
    return dialogField;
}
и им пользуюсь, кстати возможно проблемы с получение данных методом getFromDialog если не использовать мой метод.
Старый 20.10.2009, 17:32   #2  
Bishop is offline
Bishop
Участник
 
89 / 60 (3) ++++
Регистрация: 12.08.2004
Адрес: Москва
Цитата:
Сообщение от Murlin Посмотреть сообщение
Я проблему с fld_1 давно решил проство в класс Dialog я добавил такой метод
X++:
DialogField addFieldName(
    int         type,
    FieldLabel  label   = '',
    FieldName   _fieldName = '',
    FieldHelp   help    = ''
    )
{
    DialogField dialogField;
    fields += 1;
    dialogField = new DialogField(this,type,fields);
    dialogField.parmFieldName(_fieldName);
    this.addCtrlDialogField(dialogField.name());
    dialogField.init(this);
    if (label)
        dialogField.label(label);
    if (help)
        dialogField.helpText(help);
    this.addDialogClass(dialogField);
    return dialogField;
}
и им пользуюсь, кстати возможно проблемы с получение данных методом getFromDialog если не использовать мой метод.
Класс DialogField не имеет метода parmFieldName() (в стандарте)...

IMHO, лучше всего пользоваться вот этим "велосипедом":
Modified поля на форме-наследнике RunBase
Тут решена так же проблема перехвата методов RunBase-диалога на стороне сервера.
За это сообщение автора поблагодарили: kashperuk (1).
Старый 21.10.2009, 07:49   #3  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Цитата:
Сообщение от Bishop Посмотреть сообщение
Класс DialogField не имеет метода parmFieldName() (в стандарте)...

IMHO, лучше всего пользоваться вот этим "велосипедом":
Modified поля на форме-наследнике RunBase
Тут решена так же проблема перехвата методов RunBase-диалога на стороне сервера.
Извините старая доработка уже все забыл, действительно еще кое что нужно переопределить в классе dialogField
X++:
class DialogField extends DialogControl
{
    // Packed
    int             type;
    int             fieldNo;
    // Is set in init()
    DictType        dictType;
    Types           baseType;
    boolean         checkBox;
    anytype         dummy;
    // C/S optimize
    container       value;      // Hopefully temporary, a container can't be stored in a struct
   //доработка -->
    boolean         useName;
    FieldName       nameField;
   //доработка -->
    #properties
    #define.widthMode('widthMode')
    #define.heightMode('heightMode')
    #define.setHeightFromLines('setHeightFromLines')
    #localmacro.currentList
        type,
        fieldNo
    #endmacro
}
X++:
str fieldname(int arrIdx = 1)
{
    ;
    //доработка -->
    if (useName)
        return nameField;
//доработка --->
    return #PrefixField+int2str(fieldNo)+'_'+int2str(arrIdx);
}
X++:
void new(
    Dialog  _dialog,
    int     _type = 0,
    int     _fieldNo = 0
    )
{
    type        = _type;
    fieldNo     = _fieldNo;
    //Доработка --->
    useName     =   false;
//Доработка --->
    if (_dialog.isOnServer())
    {
        properties = new Struct();
        return;
    }
}
X++:
//Доработка -->
FieldName parmFieldName(FieldName _nameField = nameField)
{
    ;
    if (_nameField)
        useName = true;
    nameField = _nameField;
    return  nameField;
}
//доработка -->
За это сообщение автора поблагодарили: Alexx7 (1).
Старый 22.03.2010, 00:02   #4  
DmitryS is offline
DmitryS
Участник
 
37 / 13 (1) ++
Регистрация: 01.08.2006
Адрес: Москва
useName и nameField нужно добавить в currentList.
Без этого не работает в некоторых случаях.
Теги
dialog, modified, runbase

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Можно ли динамически созданному контролу CheckBox прикрутить метод modified? Poleax DAX: Программирование 4 31.03.2009 19:58
метод Modified к stringControl Poleax DAX: Программирование 15 21.07.2008 18:39
Форма: как привязать метод до выбора в поле Arahnid DAX: Программирование 9 22.11.2007 16:18
Метод на поле датасурса. Deusik DAX: Программирование 6 09.11.2006 16:38

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

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

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