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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.02.2005, 17:02   #1  
BEPECK is offline
BEPECK
Участник
 
6 / 10 (1) +
Регистрация: 04.02.2005
Как получить параметры в класс из формы, созданной классом.
DialogRunbase dialog = super()
dialog = dialog::newFormnameRunbase(formstr(ИМЯ_СОЗДАННОЙ_ФОРМЫ),this);

в этой форме есть StringEdit, вопрос: как работать с данными из этого StringEdit внутри класса. Необходимое условие в том, что форму по объектам ( dialog.addFieldValue )пересоздать из класса нельзя.
Старый 04.02.2005, 17:04   #2  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
На форме написать метод, возвращающий значение StringEdit.
В классе вызывать этот метод формы.
Старый 04.02.2005, 17:06   #3  
BEPECK is offline
BEPECK
Участник
 
6 / 10 (1) +
Регистрация: 04.02.2005
Простите, я только начал учиться, вы можете написать КОД как вызвать из класса метод формы, я пробовал и в ответ получил syntax error.
Старый 04.02.2005, 17:11   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
element.args.caller();

С Уважением,
Георгий.
Старый 04.02.2005, 17:50   #5  
BEPECK is offline
BEPECK
Участник
 
6 / 10 (1) +
Регистрация: 04.02.2005
Я видел эту строчку в help но я не понимаю как её использовть, вы бы не могли поподробнее написать как и куда вписывать взаимодействие класса и формы.
Старый 05.02.2005, 12:28   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Используйте неявное связывание, желательно, с проверкой.
Допустим, в классе - родителе напишите метод
PHP код:
Value parmValue(Value _value value)
{
    
value _value;
    return 
value;

теперь, в открывшейся форме, Вы сможете написать:
PHP код:
//не забудьте проверить,  что форма вызывается из класса
public void init()
{
    
FormRun fr;
    ;
    if (! 
element.args())
        throw 
error("@SYS22539");

   if (
element.args().caller()!=........)
        throw 
error("@SYS22539");

    
super();

    
fr element.args().caller();

    
ctrlStr.value(fr.parmValue());

PHP код:
//а теперь можно, допустим, перехватить событие:
public void modified()
{
    
FormRun fr element.args().caller();
    ;
    
super();
    
//проверим, есть ли такой метод
    
if (fr && formHasMethod(fr"parmValue"))
    {
        
element.args().caller().parmValue(ctrlStr.value());
    }

С Уважением,
Георгий.
Старый 07.02.2005, 09:56   #7  
BEPECK is offline
BEPECK
Участник
 
6 / 10 (1) +
Регистрация: 04.02.2005
Не работает, при вызове fr = element.args().caller() из формы, он кладёт в fr RunBatchForm, а вовсе не предка формы.
Старый 07.02.2005, 09:59   #8  
BEPECK is offline
BEPECK
Участник
 
6 / 10 (1) +
Регистрация: 04.02.2005
То есть достучаться до методов МОЕГО класса из формы через element.args().caller() не получается.
Старый 07.02.2005, 13:35   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,300 / 3532 (124) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Ту идею которую предлагал George Nordic можно найти в форме tutorial_RunbaseForm, в рабочем виде - и там из формы вызывается метод класса
Старый 07.02.2005, 14:14   #10  
BEPECK is offline
BEPECK
Участник
 
6 / 10 (1) +
Регистрация: 04.02.2005
Ларчик просто открывался
FormControl control;
FormRun form;
FormDesign design;
str strtmp;
DialogRunbase dialog;
...
dialog = dialog::newFormnameRunbase(formstr(form5),this);
dialog.doInit();
form = dialog.formRun();
design = form.design();
control = design.controlName('ИМЯ КОНТРОЛА В ФОРМЕ');
strtmp = control.valueStr();
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с передачей контролов из формы в класс matew DAX: Программирование 0 28.04.2008 17:37
Можно ли получить объект формы dreamer DAX: Программирование 9 26.11.2007 17:58
Как получить значение поля Datasource на динамически созданной форме? storer DAX: Программирование 2 14.11.2003 16:41
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Как получить доступ к текущей строке в DataSource формы Maxim Gorbunov DAX: База знаний и проекты 0 28.11.2001 13:46
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:32.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.