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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.08.2002, 10:12   #1  
Yuri Safronov is offline
Yuri Safronov
Участник
 
140 / 55 (2) ++++
Регистрация: 21.08.2002
Адрес: Москва
? Как мне обновить Grid расположенный на другой форме?
Допустим у на есть первая форма с заказами расположенными в Grid-е.
И есть кнопка «Новый заказ». По этой кнопке вызывается вторая форма в которой заполняются параметры нового заказа. Потом по нажатию на кнопку второй формы «Применить» она (то есть вторая форма) должна закрываться, а Grid на первой форме должен обновится (то есть должны появится данные, которые только, что вводились во второй форме). Как мне обновить Grid расположенный на другой форме?
__________________
yurisafronov@mail.ru
skype: y.safronov
Старый 21.01.2013, 15:25   #2  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
:(
Аналогичная задача.
Из формы 1 вызывается форма 2. По нажатию на форме 2 кнопки выполняется класс, после чего необходимо отжать чекбокс в гриде на форме 1.
Делаю:
в форма2.Init()
X++:
      CallerForm=element.args().caller(); //где CallerForm обьявлен в ClassDeclaration формы:
       //Form            CallerForm;
в форма2.дизайн.кнопка.Clicked()
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  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от alicedr Посмотреть сообщение
Подозреваю, что выбраны неверные типы данных.

Что неверно? Или как эту задачу выполнить правильнее?
Запущенная форма - это FormRun, а не Form
Старый 21.01.2013, 16:18   #4  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от belugin Посмотреть сообщение
Запущенная форма - это FormRun, а не Form
Отлично! Теперь
X++:
fieldCopy = CallerForm.design().controlName(identifierstr(Copy));
перестал ругаться, хотя чекбокс так и остается отмеченным. Не помогает ни F5, ни
X++:
CallerForm.dataSource().research();
Играет какую-то роль, что чекбокс-это поле, описанное edit-методом?
Старый 21.01.2013, 16:25   #5  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
Цитата:
Сообщение от alicedr Посмотреть сообщение
перестал ругаться, хотя чекбокс так и остается отмеченным. Не помогает ни F5, ни
X++:
CallerForm.dataSource().research();
Играет какую-то роль, что чекбокс-это поле, описанное edit-методом?
Добавьте еще такую строчку:
X++:
callerForm.redraw();
Старый 21.01.2013, 16:38   #6  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Все равно чекбокс отмечен. Вероятно из-за того, что его значение хранится в переменной mark формы 1. К переменным как-то можно добраться? Или придется заводить невидимый контрол на форме1, который будет изменять переменную mark?
Старый 21.01.2013, 16:11   #7  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Как вариант :
В первой форме делаете метод:
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  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
не заметил, что это у вас на гриде, тогда в первой форме вот так :
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  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Получилось вторым способом(через доп. контрол на форме).
Ace of Database, Pustik, спасибо!!!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как быстро обновить содержимое HTML Document на форме? Dronas DAX: Программирование 2 12.11.2021 11:28
Проверка значения CheckBox объявленного на форме в Grid mallard DAX: Программирование 3 03.05.2007 16:49
Как из формы Form2 обновить записи на форме Form1? Hidden DAX: Функционал 15 24.05.2005 11:53
Объединить несколько полей таблицы в одном поле Grid-а на форме? storer DAX: Программирование 2 12.11.2003 14:08
Поиск в Grid по полю из другой таблицы Dron AKA andy DAX: Программирование 9 01.08.2002 16:36
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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