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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.09.2008, 18:09   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ограничить передвижение окон пределами главного окна АХ
На комьюнити парень запостил следующий код, возможно кому-то покажется полезным
Он ограничивает перетаскивание/расположение форм в АХ 2009 по главному окну системы, тем самым возвращая интерфейс из АХ 4.0.

Хотя, лично я бы не советовал увлекаться сильно этим, так как к окнам вне MainWindow довольно быстро привыкаешь

Цитата:
Hi there

In development environment it, if all the dynamics windows floats around the
desktop and the task bar is jammed all the time - this can be very
frustrating it just sucks.

If you want to keep the forms in the AX workspace window (as in AX Version
<= 4.0) modify the ClassFactory.formRunClass() as follow:
X++:
FormRun formRunClass(Args args)
{
    FormName formName;
    FormRun formRun;
;
    if (args.name())
    {
        formName = args.name();
    }
    else if (args.object())
    {
        formRun = SysDictClass::as(args.object(), classnum(FormRun));
        if (formRun)
        {
            formName = formRun.name();
        }
    }

    if (formName)
    {
        SysUtilElementsLog::registerElementUsed(UtilElementType::Form, 
formName);
    }


    formRun = ClassFactory::formRunClassOnClient(args);

    if (formRun.form().design().windowType() == FormWindowType::Standard)
    {
        formRun.form().design().windowType(FormWindowType::Workspace);
    }

    return formRun;
}
With that modification you can keep the forms inside the AX main window.

May be you find pleasure to this hack.

Best regards
Patrick
За это сообщение автора поблагодарили: mazzy (2), Ansi (0), Logger (3), Poleax (1), Stitch_MS (1), alex55 (1), aweaka (1).
Старый 10.09.2016, 11:43   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от kashperuk Посмотреть сообщение
На комьюнити парень запостил следующий код, возможно кому-то покажется полезным
Он ограничивает перетаскивание/расположение форм в АХ 2009 по главному окну системы, тем самым возвращая интерфейс из АХ 4.0.
А для 2012-й есть какой нить способ сделать также ?
Попробовал ваш вариант - чо-то не работает.
А пользователи просят.
Старый 10.09.2016, 12:23   #3  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Logger Посмотреть сообщение
А для 2012-й есть какой нить способ сделать также ?
Попробовал ваш вариант - чо-то не работает.
А пользователи просят.
X++:
formRun.form().design().windowType(FormWindowType::Workspace);
Для 2012 вдобавок к windowType нужно изменить Style = Auto, иначе - windowType просто игнорируется. Но, хотя желаемый результат достигается, формы теряют презентабельность.
За это сообщение автора поблагодарили: Logger (5).
Старый 10.09.2016, 13:26   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от DSPIC Посмотреть сообщение
X++:
formRun.form().design().windowType(FormWindowType::Workspace);
Для 2012 вдобавок к windowType нужно изменить Style = Auto, иначе - windowType просто игнорируется. Но, хотя желаемый результат достигается, формы теряют презентабельность.
Спс.
Да они еще в 2009-й теряли в презентабельности.
Но никак не можем переучиться на новый вид.

Пока не можем решить вопрос как различать формы из двух разных приложений.
Например, аналитик одновременно работает в тестовой аксапте и в рабочей.
или программист работает в деве и в тесте. В случае когда все окна собраны внутри главного - то все просто - по заголовку главного окна все понятно. А если каждое само по себе, то легко перепутать.
Старый 10.09.2016, 22:22   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Logger Посмотреть сообщение
Спс.
Да они еще в 2009-й теряли в презентабельности.
Но никак не можем переучиться на новый вид.

Пока не можем решить вопрос как различать формы из двух разных приложений.
Например, аналитик одновременно работает в тестовой аксапте и в рабочей.
или программист работает в деве и в тесте. В случае когда все окна собраны внутри главного - то все просто - по заголовку главного окна все понятно. А если каждое само по себе, то легко перепутать.
Когда-то я эту проблему решал так:

\Classes\SysSetupFormRun\init
X++:
public void init()
{
    super();

    if (this.isWorkflowEnabled())
    {
        workflowControls = SysWorkflowFormControls::construct(this);
        workflowControls.initControls();
    }

    // EVGA -->
    this.devSetWindowText();
    // EVGA <--
}
\Classes\SysSetupFormRun\devSetWindowText
X++:
// EVGA -->
private void devSetWindowText()
{
    str captionStr;

    captionStr = WinAPI::getWindowText(this.hWnd());

    captionStr = strRem(captionStr, "TEST: ");

    captionStr = "TEST: " + captionStr;

    WinAPI::setWindowText(this.hWnd(), captionStr);

    this.setTimeOut(identifierStr(devSetWindowText), 500);
}
// EVGA <--
Т.е. в caption всех окон приложения устанавливаем тот или иной префикс.

Caption же главного окна приложения можно поменять аналогичным WinApi здесь
\Classes\Info\workspaceWindowCreated

Вдобавок, можно еще и иконку окон поменять, см. WM_SETICON message.
За это сообщение автора поблагодарили: Logger (3), Raven Melancholic (5).
Старый 11.09.2016, 13:20   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Все проще можно. В конфигураци клиента указать имя АОСа, в настройках пользователя включить галочку отображать имя АОСа в строке статуса. И всегда будет видно, какой это АОС, даже в многооконном режиме.
PS. Я не об отключении перемещения за пределы главного окна, а о решении проблемы идентификации приложения.
Миниатюры
Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 608
Размер:	53.8 Кб
ID:	10960   Нажмите на изображение для увеличения
Название: 3.jpg
Просмотров: 630
Размер:	59.0 Кб
ID:	10961  

Изображения
 

Последний раз редактировалось raz; 11.09.2016 в 13:41.
За это сообщение автора поблагодарили: Logger (3), DSPIC (2).
Старый 11.09.2016, 14:39   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Попробовал в 2012-й вариант предложенный DSPIC.
Работает.
Но в некоторых местах как-то странно.
Лезут какие-то левые окошки кривые. Похоже не для каждого окна надо такое вмешательство делать, а какие-то не трогать. Вопрос только какие. В общем, пока отключил.
Надо будет поисследовать вопрос подробнее.

Склоняюсь просто к тому чтобы каждому приложению задать свой цвет окна и все.
Старый 07.10.2016, 11:09   #8  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
В DevTools 2012 тоже есть префикс к окнам и цвет status bar настраивается.

__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
За это сообщение автора поблагодарили: Logger (3).
Теги
ax2009, dev toolbar, developer tool, syssetupformrun, интерфейс, программно, управление окнами

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Общая схема порядка обновления с АХ 3.0 на АХ 4.0 Vadim Korepin DAX: Функционал 11 25.11.2008 17:40
Заголовок главного окна lyolea84 DAX: Администрирование 3 14.11.2007 14:54
Совместимость Ах 3.0 и Ах 4.0 oleg_e DAX: Администрирование 21 01.02.2007 19:39
Как изменить заголовок окна предв.просмотра отчета Владимир Максимов DAX: Программирование 6 03.07.2006 15:34
Как получить размер окна и клиентской области? gudzon DAX: Программирование 15 15.09.2005 15:15

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

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

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