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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.08.2004, 11:42   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Изменить компанию в форме
AXAPTA 2.5 SP 3RU

Необходимо по выбору пользователя изменить текущую компанию в текущей форме для всех DataSource.

Пишу:

Table1.company(newCompany)
Table1_DS.reseach()

Никакой реакции. Запросы по прежнему выполняются по той компании, которая была установлена при инициализации формы.

Пока проблема решается через промежуточный класс, который и организует вызов формы. При выборе другой компании форма просто переоткрывается через класс-оболчку.

Есть более простое решение?

AXAPTA 2.5 SP 3RU
Старый 27.09.2006, 12:06   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Столкнулся с подобной задачей.
Нужно открыть эту же форму, только в другой компании.

Сделал немного по-другому:

Код:
    #define.company('dat')
    Args      args;                               // ?????? ????? Args
    FormRun   formRun;                            // ?????? ????? FormRun
    int       hwnd;
    ;
    super();
    hwnd = element.hWnd();
    element.close();
    appl.setDefaultCompany(#company, false);
    SysSecurity::reload(false);
    args = new Args();
    args.parm(int2str(hwnd));
//    args.caller( this );
    args.name(formStr(PurchTable));
    formRun = ClassFactory.formRunClass(args);
    formRun.init();
    formRun.run();
    formRun.wait();
    infolog.clear();
Все бы хорошо - то есть другая компания и форма в ней открваются, да только вот старая форма остается.
Хотя, закрывать пытаюсь и в этом методе (простое element.close());
и в init открываемой формы, если передали parm()
Код:
    hwnd = str2int(element.args().parm());
    WinAPI::sendMessageEx(hwnd, #WM_SYSCOMMAND, #SC_CLOSE, 0);
Может есть другой способ?
или, может, кто-то знает хороший способ открытия формы в другой компании?
Старый 27.09.2006, 12:39   #3  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Кажется, надо вместо formRun.wait() поставить formRun.detach(). После этого можно уже вызывать caller.close().

А вообще, отличной иллюстраций к обсуждаемой теме является класс TradeInterCompany. Все уже придумано до нас.
За это сообщение автора поблагодарили: kashperuk (2).
Старый 27.09.2006, 12:58   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Спасибо, EVGL
Уже сам допер, что не закрывалось именно из-за wait()
Как раз зашел всем об этом рассказать
X++:
formRun.detach();
// formRun.wait();
все срабаывает.
Спасибо. Вопрос снят.

PS Класс посмотрю, спасибо
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Использование семейства InventDimCtrl_Frm_* - 2 DS InventDim на одной форме Pavlo AKA Panok DAX: База знаний и проекты 5 22.12.2008 17:15
Как не выводить заголовки в форме, если нет строк? DreamCreator DAX: Программирование 9 29.05.2008 15:10
Название полей в форме запроса PavelSR DAX: Программирование 4 11.07.2007 17:19
Как программно изменить к-во в строке заказа в форме SalesTable BorDark DAX: Программирование 2 13.01.2005 17:02
Как программно изменить размер контрола на открытой форме? SnowMan DAX: Программирование 2 17.03.2004 11:27

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

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

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