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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.06.2004, 17:02   #1  
simply is offline
simply
Участник
 
84 / 10 (1) +
Регистрация: 24.05.2004
Адрес: москва
? обращение к методам датасоурса формы из класса
Предистория такова:
Есть форма, к примеру frmForm на форме есть DataSourses к примеру SalesTable, и есть класс clsClass.
В режиме исполнения при инициализации формы создается экземпляр класса и передается ссылка на форму-родитель.

форма frmForm

public class FormRun extends ObjectRun
{
clsClass cls;
}

public void init()
{
super();

cls = new clsClass(this);
}


класс clsClass

void new(FormRun _parentForm)
{
parentForm = _parentForm;
}

А вопрос то в том, каким образом обращаться из класса к методам датасорса формы
Старый 02.06.2004, 17:22   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Обычно класс вызывает форму...
Хотя в Вашем случае... попробуйте создать в форме методы, которые будут обращаться к определенному datasourcу этой формы и выполнять запросы:
PHP код:
Form -> MyEmplForm
method 
-> EmplTable getCurrentRecord()
{
     if (
EmplTable.RecId != 0)    
         return 
emplTable;
}
Class -> 
MyClass
method 
-> getCurrentRecord()
{
    
EmplTable emplTable;      
    ;
    
emplTable fr.getCurrentRecord(); // Позднее связывание

Попробуте!
Удачи!
Старый 02.06.2004, 17:46   #3  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
Это пройдет, только если fr будет иметь тип object
Цитата:
Изначально опубликовано George Nordic
Обычно класс вызывает форму...
Хотя в Вашем случае... попробуйте создать в форме методы, которые будут обращаться к определенному datasourcу этой формы и выполнять запросы:
PHP код:
Form -> MyEmplForm
method 
-> EmplTable getCurrentRecord()
{
     if (
EmplTable.RecId != 0)    
         return 
emplTable;
}
Class -> 
MyClass
method 
-> getCurrentRecord()
{
    
EmplTable emplTable;      
    ;
    
emplTable fr.getCurrentRecord(); // Позднее связывание

Попробуте!
Удачи!
Старый 02.06.2004, 17:58   #4  
simply is offline
simply
Участник
 
84 / 10 (1) +
Регистрация: 24.05.2004
Адрес: москва
ну вообщем-то так можно обратится к статическим методам... а мне бы хотелось более абстрактно, что -то типа
Form.owner().Method()
что бы кампилятор не проверял наличие данного метода, а тупо его исполнял...
Старый 03.06.2004, 10:19   #5  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
1) Где Вы видите вызов статического метода?
2) А вот эта ситуация:
Цитата:
что бы кампилятор не проверял наличие данного метода, а тупо его исполнял...
грозит вываливанием axaptы в RunTime error.
Старый 03.06.2004, 12:02   #6  
simply is offline
simply
Участник
 
84 / 10 (1) +
Регистрация: 24.05.2004
Адрес: москва
Так… для себя я так определил решение

Объект класса формы есть некий объект-контейнер, все остальное в нем – встроенные объекты, изолированные от внешнего мира, доступ к ним только из методов контейнера.
А обращаться к методам объекта из экземпляра класса можно так:

clsClass

void new(FormRun _parentForm)
{
parentForm = _parentForm
}

void CallMyMethod()
{
parentForm.owner().MyMethod();
}

Единственная проблема… которая мне видится и которая может сгенерить ошибку этапа исполнения… отсутствие у объекта метода MyMethod()… интересно есть ли способ проверить, это перед обращением…

Извиняюсь за может быть излишнюю назойливость… и тривиальность вопросов… я просто стою в начале пути… ))) хочется выстроить для себя объектную модель… и больше об этом не задумываться…

Кстати ... спасибо за помощь....
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Открытие формы из класса Акавешка DAX: Программирование 2 11.01.2007 13:39
Как обратиться к методам формы Розен DAX: Программирование 2 11.04.2006 15:06
Доступ к DataSource формы из класса ... (+) topgun DAX: Программирование 15 19.01.2006 14:06
Вызов формы из класса Vitaly_K DAX: Программирование 4 21.03.2005 10:36
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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