19.11.2015, 13:49 | #1 |
Участник
|
Не отрабатывает метод
Добрый день!
Есть форма - на форма через 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(); } } } Первый работает нормально - второй однако нет. Если переопределить clicked для кнопки добавив X++: DryRuLedgerClosingTable_DS.research(); DryRuLedgerClosingTable_DS.executeQuery(); |
|
19.11.2015, 13:58 | #2 |
Участник
|
Эти методы должны быть не в классе, а на форме.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
19.11.2015, 14:18 | #3 |
MCITP
|
Почему такое странное имя для метода который обновляет датасорс? (parmResreshDataSource)
parm-метод подразумаевает прием\передачу переменной, обычно. По существу - а код метода привести слабо? Телепатов тут нет. Понятно что переменных DryRuLedgerClosingTable_DS и т.п. в классе по умолчанию нет, их надо либо туда передать, либо найти самому от переданного курсора.
__________________
Zhirenkov Vitaly |
|
19.11.2015, 14:27 | #4 |
Участник
|
Цитата:
В классе два parm метода. Один возвращает таблицу(parmClosingSheet), другой(parmResreshDataSource) должен обновлять датасорусы
Метод для обвления датасурсов в прицнипе такой же как то что я дописал после super() в кнопке parmRefreshDatasource() PHP код:
|
|
19.11.2015, 14:33 | #5 |
Участник
|
X++: if (ledgerClosingAccounts.validate()) { if (ledgerClosingAccounts.prompt()) { ledgerClosingAccounts.run(); _args.caller().parmResreshDataSource(); } } X++: _args.caller().parmResreshDataSource(); дебаггером проверяли?
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
19.11.2015, 14:49 | #6 |
MCITP
|
может причина в том что parmResreshDataSource и parmRefreshDataSource это не одно и то же?
__________________
Zhirenkov Vitaly |
|
19.11.2015, 14:51 | #7 |
MCITP
|
заодно:
в чём смысл последовательных вызовов research(); и executeQuery(); ? чтоб наверняка?
__________________
Zhirenkov Vitaly |
|
19.11.2015, 14:56 | #8 |
Участник
|
Цитата:
X++: DryRuLedgerClosingTable_DS.research(); DryRuLedgerClosingTable_DS.refresh(); DryRuLedgerClosingTable_DS.executeQuery();
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
20.11.2015, 11:16 | #9 |
Программатор
|
formDataSource = _args.record().dataSource();
if (formDataSource) formDataSource.executeQuery(); ? Последний раз редактировалось Sada; 20.11.2015 в 11:18. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
|
|