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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.06.2013, 11:41   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,933 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Как принудительно обновить Content pane ?
Всем привет.

Обнаружил неприятную багу в Аксапте.
При смене компании не обновляется содержимое content pane.
Как следствие, если пользователь залогинился в одной компании, в которой у него урезан доступ к определенным пунктам меню, а затем переключился к другой компании, то пункты меню не появляются

При этом sidax и старое трешечное меню
X++:
    TreeNode        TreeNode;
    ;
    TreeNode = TreeNode::findNode(@"\Menus\MainMenu");
    if (TreeNode)
    {
        TreeNode.AOTrun();
    }
отображает все корректно.
Т.е. права доступа настроены корректно.

Как бы мне явно сбросить content pane.

P.S. Ax2009 build 1500.4570 (RU7)
Старый 25.06.2013, 11:43   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,933 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Если сразу логинимся во 2-й компании то все пункты меню видны. Но при переключении в 1-ю - не пропадают.
Старый 25.06.2013, 14:19   #3  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
может вот это поможет
X++:
static void HideShowContentFrame(boolean _hide = false)
{
    #WinApi
    HWND contentPane =  WinApi::findWindowEx(
        WinAPI::findWindowEx(infolog.hWnd(), 0, 'MDIClient', ''),
        0, 'ContentFrame', '');

    if (contentPane)
        if (_hide)
            WinApi::ShowWindow(contentPane, #SW_HIDE);
        else
            WinApi::ShowWindow(contentPane, #SW_SHOW);
}
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
За это сообщение автора поблагодарили: Logger (2), IKA (1).
Старый 27.06.2013, 13:36   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,933 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Неужели никто не сталкивался с такими проблемами ?
По сути - права доступа не работают при переходе между компаниями. Либо я чего-то не понимаю, либо глюк проявляется при каких-то особых условиях.
Старый 27.06.2013, 16:18   #5  
ansoft is offline
ansoft
Участник
Аватар для ansoft
 
123 / 37 (2) +++
Регистрация: 20.10.2005
Может чего не понимаю... но разве права не общие для всех компаний?
Такие таблички как UserGroupInfo, UserInfo, UserGroupList, SysSecurityFormTable, SysSecurityFormControlTable, AccessRigthList не имеют dataAreaId... или у вас разные домены DOMAINID?
Старый 27.06.2013, 16:23   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,933 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Права как выяснилось работают корректно.
Это системное окошко contentPane некорректно отрисовывается. При этом если попытаться ткнуть в пункт меню который остался отрисованным после переключения в компанию где он запрещен, то Аксапта выдает Messagebox : "Недостаточно прав доступа"

т.е. права все же работают.

P.S. у нас включены домены и компании сидят в разных доменах.
Старый 27.06.2013, 16:40   #7  
ansoft is offline
ansoft
Участник
Аватар для ansoft
 
123 / 37 (2) +++
Регистрация: 20.10.2005
У нас такого чуда нет...
Скрытие и отображение рабочего пространства предложенного pustik явно не покатит...
Можно посмотреть в сторону:
xInfo.createWorkspaceWindow Method
Opens a new workspace window. For example, this enables you to open different sets of application objects in different windows, or to work with two different sets of company accounts.
... и привязать энту штуку к смене компании как вариант или забить... права же работают.
Старый 27.06.2013, 16:43   #8  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,933 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Да пробовал уже так.
Стандартное окошко выбора компании (form sysSelectDataarea) позволяет открыть новую область с выбранной компанией - не помогает.
Он походу при старте аксапты где-то кеширует внешний вид окна и дальше только его и показывает.
Старый 27.06.2013, 16:54   #9  
ansoft is offline
ansoft
Участник
Аватар для ansoft
 
123 / 37 (2) +++
Регистрация: 20.10.2005
А почистить кэш не пробовали до того как...

void workspaceWindowDestroyed(int _hWnd)
{
...
// This method is called when a workspace window is destroyed
// here workspace related resources can be cleaned up
if (workspaceCacheMap && workspaceCacheMap.exists(_hWnd))
{
// clean up the workspace cache object. This is created in the
// workspaceCache() function.
workspaceCacheMap.remove(_hWnd);
}
Старый 27.06.2013, 18:10   #10  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,933 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Нет.
Можно попробовать
А почему вы думаете что это может быть связано ?
Старый 27.06.2013, 18:52   #11  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от Logger Посмотреть сообщение
А почему вы думаете что это может быть связано ?
может быть и потому что
Цитата:
Сообщение от Logger Посмотреть сообщение
Он походу при старте аксапты где-то кеширует внешний вид окна и дальше только его и показывает.
Вообще, если удастся решить эту проблему, возможно, исчезнет необходимость пользователю закрывать Аксапту при редактировании( например, добавление каких-нибудь пунктов в меню) прав его группы в режиме on-line. Правда сбрасывание кэша у пользователя эту проблему не решает. Если отредактируешь права группы, в которую пользователь входит, в тот момент когда он работает, то чтобы увидеть изменения в области содержания ему приходиться прерывать работу и перезапускать Аксапту. Но это уже другая проблема, Извините.(хотя внутренний голос подсказывает, что корни одни и те же )
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 27.06.2013 в 19:04.
Теги
content pane

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX: Official Dynamics AX 2012 R2 Content (update) - Where is it, and how can you find out about updates? Blog bot DAX Blogs 0 03.12.2012 11:11
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
msdynamicsax: Hide the content pane in Ax 2009 Blog bot DAX Blogs 0 09.09.2008 17:05
axcoder: How to hide Content Pane in Ax 2009 Blog bot DAX Blogs 0 02.07.2008 00:07

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:45.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.