|
30.08.2002, 10:12 | #1 |
Участник
|
Как мне обновить Grid расположенный на другой форме?
Допустим у на есть первая форма с заказами расположенными в Grid-е.
И есть кнопка «Новый заказ». По этой кнопке вызывается вторая форма в которой заполняются параметры нового заказа. Потом по нажатию на кнопку второй формы «Применить» она (то есть вторая форма) должна закрываться, а Grid на первой форме должен обновится (то есть должны появится данные, которые только, что вводились во второй форме). Как мне обновить Grid расположенный на другой форме? |
|
21.01.2013, 15:25 | #2 |
Участник
|
Аналогичная задача.
Из формы 1 вызывается форма 2. По нажатию на форме 2 кнопки выполняется класс, после чего необходимо отжать чекбокс в гриде на форме 1. Делаю: в форма2.Init() X++: CallerForm=element.args().caller(); //где CallerForm обьявлен в ClassDeclaration формы: //Form CallerForm; X++: void clicked() { FormCheckBoxControl fieldCopy; ; super(); // fieldCopy = CallerForm.design().controlName(identifierstr(Copy)); //выдает ошибку компилятора // "Класс FormBuildDesign не содержит эту функцию" fieldCopy = CallerForm.design().control(identifierstr(Copy)); // выдает ошибку времени выполнения "Обьект не инициализирован" // на следующей строчке fieldCopy.value(false); } Что неверно? Или как эту задачу выполнить правильнее? |
|
21.01.2013, 15:49 | #3 |
Участник
|
|
|
21.01.2013, 16:18 | #4 |
Участник
|
Отлично! Теперь
X++: fieldCopy = CallerForm.design().controlName(identifierstr(Copy)); X++: CallerForm.dataSource().research(); |
|
21.01.2013, 16:25 | #5 |
Участник
|
|
|
21.01.2013, 16:38 | #6 |
Участник
|
Все равно чекбокс отмечен. Вероятно из-за того, что его значение хранится в переменной mark формы 1. К переменным как-то можно добраться? Или придется заводить невидимый контрол на форме1, который будет изменять переменную mark?
|
|
21.01.2013, 16:11 | #7 |
Участник
|
Как вариант :
В первой форме делаете метод: X++: void chkMove(NoYes _var = NoYes::No)
{
fieldCopy.value(_var);
} X++: public class FormRun extends ObjectRun { Object callerForm; } X++: CallerForm=element.args().caller(); //где CallerForm обьявлен в ClassDeclaration формы: //Object CallerForm; - вот это важно X++: void clicked() { super(); callerForm.chkMove(NoYes::No); }
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 21.01.2013 в 16:13. |
|
21.01.2013, 16:32 | #8 |
Участник
|
не заметил, что это у вас на гриде, тогда в первой форме вот так :
X++: void chkMove(NoYes _var = NoYes::No) { MyTable_ds.marked(_var ,MyTable ); // это edit метод MyTable_ds.reread(); MyTable_ds.refresh(); }
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
21.01.2013, 16:45 | #9 |
Участник
|
Получилось вторым способом(через доп. контрол на форме).
Ace of Database, Pustik, спасибо!!! |
|
|
|