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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.09.2008, 18:09   #1  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
4,308 / 2002 (75) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Ограничить передвижение окон пределами главного окна АХ
На комьюнити парень запостил следующий код, возможно кому-то покажется полезным
Он ограничивает перетаскивание/расположение форм в АХ 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), aweaka (1).
Старый 10.09.2016, 11:43   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2014
 
2,897 / 1534 (57) ++++++++
Регистрация: 12.10.2004
Цитата:
Сообщение от kashperuk Посмотреть сообщение
На комьюнити парень запостил следующий код, возможно кому-то покажется полезным
Он ограничивает перетаскивание/расположение форм в АХ 2009 по главному окну системы, тем самым возвращая интерфейс из АХ 4.0.
А для 2012-й есть какой нить способ сделать также ?
Попробовал ваш вариант - чо-то не работает.
А пользователи просят.
Старый 10.09.2016, 12:23   #3  
DSPIC is offline
DSPIC
Боец
Аватар для DSPIC
Лучший по профессии 2014
MCP
Лучший по профессии 2009
 
962 / 949 (33) +++++++
Регистрация: 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
Участник
Лучший по профессии 2014
 
2,897 / 1534 (57) ++++++++
Регистрация: 12.10.2004
Цитата:
Сообщение от DSPIC Посмотреть сообщение
X++:
formRun.form().design().windowType(FormWindowType::Workspace);
Для 2012 вдобавок к windowType нужно изменить Style = Auto, иначе - windowType просто игнорируется. Но, хотя желаемый результат достигается, формы теряют презентабельность.
Спс.
Да они еще в 2009-й теряли в презентабельности.
Но никак не можем переучиться на новый вид.

Пока не можем решить вопрос как различать формы из двух разных приложений.
Например, аналитик одновременно работает в тестовой аксапте и в рабочей.
или программист работает в деве и в тесте. В случае когда все окна собраны внутри главного - то все просто - по заголовку главного окна все понятно. А если каждое само по себе, то легко перепутать.
Старый 10.09.2016, 22:22   #5  
DSPIC is offline
DSPIC
Боец
Аватар для DSPIC
Лучший по профессии 2014
MCP
Лучший по профессии 2009
 
962 / 949 (33) +++++++
Регистрация: 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.
__________________
Мой блог
За это сообщение автора поблагодарили: Raven Melancholic (5).
Старый 11.09.2016, 13:20   #6  
raz is offline
raz
NavAx
Аватар для raz
Лучший по профессии 2014
Лучший по профессии 2009
NavAx Club
 
1,313 / 764 (28) +++++++
Регистрация: 22.07.2003
Адрес: МО
Все проще можно. В конфигураци клиента указать имя АОСа, в настройках пользователя включить галочку отображать имя АОСа в строке статуса. И всегда будет видно, какой это АОС, даже в многооконном режиме.
PS. Я не об отключении перемещения за пределы главного окна, а о решении проблемы идентификации приложения.
Миниатюры
Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 55
Размер:	53.8 Кб
ID:	10960   Нажмите на изображение для увеличения
Название: 3.jpg
Просмотров: 44
Размер:	59.0 Кб
ID:	10961  

Изображения
 

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

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

__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
За это сообщение автора поблагодарили: Logger (3).
Теги
ax2009, 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, время: 05:04.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.