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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2015, 13:49   #1  
Art_Tanis is offline
Art_Tanis
Участник
 
225 / 36 (2) +++
Регистрация: 04.02.2014
Не отрабатывает метод
Добрый день!
Есть форма - на форма через menu item добавлен вызов класса.

Main:
X++:
static void main(Args _args)
{
    DryRuLedgerClosingAccounts                ledgerClosingAccounts;
    FormDataSource                                   formDataSource;
    ;
    if(SysDictClass::isEqualOrSuperclass(classIdGet( _args.caller()), classNum(FormRun)))
    {
        ledgerClosingAccounts = DryRuLedgerClosingAccounts::newLedgerClosingTable(_args.caller().parmClosingSheet(),_args.parmEnum());
    }
    else
    {
        throw error("@SYS18626");
    }

    if (ledgerClosingAccounts.validate())
    {
        if (ledgerClosingAccounts.prompt())
        {
            ledgerClosingAccounts.run();
            _args.caller().parmResreshDataSource();

        }
    }

}
В классе два parm метода. Один возвращает таблицу(parmClosingSheet), другой(parmResreshDataSource) должен обновлять датасорусы.
Первый работает нормально - второй однако нет.
Если переопределить clicked для кнопки добавив
X++:
    DryRuLedgerClosingTable_DS.research();
    DryRuLedgerClosingTable_DS.executeQuery();
А из класса не хочет.
Старый 19.11.2015, 13:58   #2  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от Art_Tanis Посмотреть сообщение
В классе два parm метода. Один возвращает таблицу(parmClosingSheet), другой(parmResreshDataSource) должен обновлять датасорусы.
Эти методы должны быть не в классе, а на форме.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 19.11.2015, 14:18   #3  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
Почему такое странное имя для метода который обновляет датасорс? (parmResreshDataSource)
parm-метод подразумаевает прием\передачу переменной, обычно.

По существу - а код метода привести слабо?
Телепатов тут нет.

Понятно что переменных DryRuLedgerClosingTable_DS и т.п. в классе по умолчанию нет, их надо либо туда передать, либо найти самому от переданного курсора.
__________________
Zhirenkov Vitaly
Старый 19.11.2015, 14:27   #4  
Art_Tanis is offline
Art_Tanis
Участник
 
225 / 36 (2) +++
Регистрация: 04.02.2014
Цитата:
В классе два parm метода. Один возвращает таблицу(parmClosingSheet), другой(parmResreshDataSource) должен обновлять датасорусы
Очепятался. Конечно на форме.
Метод для обвления датасурсов в прицнипе такой же как то что я дописал после super() в кнопке
parmRefreshDatasource()
PHP код:
DryRuLedgerClosingTable_DS.research();
DryRuLedgerClosingTable_DS.executeQuery(); 
Старый 19.11.2015, 14:33   #5  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
X++:
if (ledgerClosingAccounts.validate())
    {
        if (ledgerClosingAccounts.prompt())
        {
            ledgerClosingAccounts.run();
            _args.caller().parmResreshDataSource();

        }
    }
а точно отрабатывает
X++:
_args.caller().parmResreshDataSource();
?
дебаггером проверяли?
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 19.11.2015, 14:49   #6  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
может причина в том что parmResreshDataSource и parmRefreshDataSource это не одно и то же?
__________________
Zhirenkov Vitaly
Старый 19.11.2015, 14:51   #7  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
заодно:
в чём смысл последовательных вызовов research(); и executeQuery(); ?
чтоб наверняка?
__________________
Zhirenkov Vitaly
Старый 19.11.2015, 14:56   #8  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от ZVV Посмотреть сообщение
заодно:
в чём смысл последовательных вызовов research(); и executeQuery(); ?
чтоб наверняка?
мне тоже показалось странным почему там нет refresh()?
X++:
DryRuLedgerClosingTable_DS.research(); 
DryRuLedgerClosingTable_DS.refresh(); 
DryRuLedgerClosingTable_DS.executeQuery();
заодно и немного будет соответствовать названию метода
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 20.11.2015, 11:16   #9  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
formDataSource = _args.record().dataSource();

if (formDataSource)
formDataSource.executeQuery();

?

Последний раз редактировалось Sada; 20.11.2015 в 11:18.
За это сообщение автора поблагодарили: S.Kuskov (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не срабатывает display-метод Vasiliusis DAX: Программирование 7 23.04.2014 15:03
DAX 2009,5.0.1000.52 SP1 в таблице smmBusRelTable отсутствует метод convert2Customer Murlin DAX: Программирование 8 11.11.2009 16:23
SalesLine.initFromSalesTable() - кроме журналов, никогда корректно не отрабатывает? gl00mie DAX: Программирование 2 23.01.2008 11:48
display метод с параметром Андре DAX: Программирование 5 11.01.2006 19:04
Передача массива VARIANTов в Automation метод Maximin DAX: Программирование 0 09.10.2002 19:31
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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