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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.02.2006, 16:47   #1  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Грабли с наследником и edit-методом
Есть классик с одним методом
PHP код:
class MyClass
{
    
boolean checkIt;
}
boolean parmCheckIt(boolean _checkIt checkIt)
{
    
checkIt _checkIt;
    return 
checkIt;

и есть формочка, в которой используется этот класс в edit-методе
PHP код:
edit boolean formCheckIt(boolean _setboolean _checkIt)
{
    if(
_set)
        
myClass.parmCheckIt(_checkIt);

    return 
myClass.parmCheckIt();

Все замечательно работает и все счастливы.

Но кому-то понадобилось сделать наследника и использовать его там же.
Перекрыли метод
PHP код:
boolean parmCheckIt(boolean _checkIt)
{
    return 
super(_checkIt);

И в результате, чекбокс на форме перестал работать.

Вот такая грустная история
Старый 02.02.2006, 16:58   #2  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Инкрементную компиляцию родительскому классу попробуйте.
Старый 02.02.2006, 17:00   #3  
_AnK_ is offline
_AnK_
Участник
Аватар для _AnK_
Ex AND Project
 
160 / 31 (2) +++
Регистрация: 03.11.2005
Адрес: СПб
Инкрементная компиляция базового класса может помочь.
Старый 02.02.2006, 17:52   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Не поможет
Дело в том, что в наследнике неправильно перекрыт метод.
В родителе параметр необязателен, а в наследнике он всегда должен передаваться извне. В результате переменная _checkIt заполняется фиг-знает-чем, а потом это передается в супер.

Вот так работает намного лучше
PHP код:
boolean parmCheckIt(boolean _checkIt checkit

    return 
super(_checkIt); 

Старый 02.02.2006, 18:12   #5  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Тогда вопрос. Зачем нужен такой метод в наследнике?
Старый 02.02.2006, 18:16   #6  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Естественно, что это все сильно сокращенный пример из жизни. В коде было так
return super(_checkIt) && (какое-то еще условие);
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Edit-метод и Relation - баг или фича ? TasmanianDevil DAX: Программирование 9 20.11.2008 10:16
Проблема с EDIT методом и гридом Delfins DAX: Программирование 1 23.01.2007 21:36
Проблема с Edit методом PavelSR DAX: Программирование 12 09.06.2006 10:55
Помогите разобраться с edit-методом mashaSi DAX: Программирование 4 08.06.2006 07:19
edit и display методы Maxim Gorbunov DAX: База знаний и проекты 4 15.01.2002 12:58
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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