17.05.2007, 12:44 | #201 |
Пенсионер
|
Цитата:
Пасиб что обратил внимание!
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
06.06.2007, 18:24 | #202 |
Участник
|
использую табакс, но в добавок еще пользуюсь "Компонента для управления окнами в Axapta" Выкладываю утилиту для управления окнами в Axapta. потому что:
1) скорость реакции появления окна (не критично) 2) горячие клавиши переклюбчения между окнами (критично) вопрос: можно ли в табаксе настроить гор.кнопки для переключения между окнами предложение (если на вопрос отр. ответ): может в проект подключить компонент???
__________________
--- SHiSHok |
|
07.06.2007, 09:49 | #203 |
Участник
|
1. а какие гор. кнопки нужны?
2. Я думаю, можно сделать плагином... |
|
07.06.2007, 10:11 | #204 |
Участник
|
в таскбаре активно использую:
[Alt+W] перебор окон в прямом порядке (активно использую - удобно быстро переключаться между двумя используемыми окнами) [Alt+Q] перебор окон в обратном порядке (почти не использую) [Alt+E] закрыть текущее окно (использую редко)
__________________
--- SHiSHok |
|
07.06.2007, 10:16 | #205 |
Участник
|
Но для всего этого есть стандартные клавиши. Зачем внедрять еще что-то?
[Alt+W] = [Ctrl+F6] [Alt+Q] = [Ctrl+Shift+F6] [Alt+E] = [Ctrl+F4] Вполне удобно используются. Главное привыкнуть. Но самое главное. Не требуют вмешательства, так как уже работают |
|
07.06.2007, 10:35 | #206 |
Участник
|
есть конечно, но уж очень не удобно, а так одной рукой можно рулить. еще преимущество Alt+W в тасбаре что активное окно становится первым в списке окон, а остальные сдвигаются , т.е. чтоб переключатся между 2-мя достаточно просто жать hot key и окна будут переключаться в верхушке списка.
__________________
--- SHiSHok |
|
07.06.2007, 10:36 | #207 |
Участник
|
1. можно воспользоваться AoutoIt или AutohotKey для переопределения клавиш
2. Стандартные сочетания работают во многих программах, поэтому стоит привыкнуть к ним (в Опере, например тоже работают) |
|
07.06.2007, 13:41 | #208 |
Участник
|
подскажите как лучше организовать?
вообщем табакс требует на клиенте скпировать нектороые файлики (рисунки, иконки), на куче клиентских местах данную процедуру проделывать ломы... Может кто подскажет как лучше организовать данную процедуру? |
|
07.06.2007, 13:44 | #209 |
Участник
|
|
|
07.06.2007, 13:45 | #210 |
Участник
|
1. Или использовать TabaxLite
2. Или настроить на шару |
|
07.06.2007, 13:59 | #211 |
Участник
|
можно, кстати, сделать интерфейс для плагинов для подмены загрузки ресурсов
|
|
11.06.2007, 13:18 | #212 |
Участник
|
блин, чета не получается у меня решить задачу с использованием SysFileDeployer. В общем у меня проблема такая - DAX4.0 )))))
Короче сделал как там и описали (в смысле пока хотел посмореть как скопируются у меня файл \\axapta\40\NATApplication\Share\Include\addInsBut.bmp): 1. необходимый для копирования файл разместил на сервере в папке \\axapta\40\NATApplication\Share\Include (именно на папкуC:\Program Files\Microsoft Dynamics AX\40\NATApplication натравлен AOS), данной папке дал полный доступ для всех, а так же копируемому файлу в этой папке и на клиенте ресурсу «C:\Program Files\Microsoft Dynamics AX\40\Client\Share\Include» установил полное разрешение для всех (вкладка «безопасность» в свойствах файлов и папок). 2. написал класс-наследник от SysFileDeploymentFile, в нем перекрыл методы destinationPath и filename, в которых указал путь (return xInfo::directory(DirectoryType::Include) и имя файла (return 'addInsBut.bmp' 3. в методе SysFileDeployer.filesToDeploy возвращаю контейнер к котором указан описанный выше класс (classNum(имя_класса)) при пошаговой отладке запуска клиента, вижу что в методе SysFileDeployer.main проверка if (!sysFileDeployer.parmUpToDate() && !sysFileDeployer.isUptodate() && sysFileDeployer.prompt()) обрывается на первом же !sysFileDeployer.parmUpToDate() (возвращает истину) вообщем при комментировании данной проверки if (/*!sysFileDeployer.parmUpToDate() &&*/ !sysFileDeployer.isUptodate() && sysFileDeployer.prompt()) получается ошибка уже в !sysFileDeployer.isUptodate() – вообщем при отладке дохожу при проверке версии файла (даты модификации) до info.add(), в нем _txt = «Сбой запроса на разрешение типа "FileIOPermission". (S)\Classes\FileIOPermission\demand (S)\Classes\WinAPIServer\createFile - line 26 (S)\Classes\WinAPIServer\getFileDate - line 13 (S)\Classes\WinAPIServer\getFileModifiedDate - line 10 (S)\Classes\SysFileDeploymentFile\serverVersion - line 5 (S)\Classes\SysFileDeploymentFile\parmServerVersion - line 4 (S)\Classes\SysFileDeployment\getServerVersion - line 5 (S)\Classes\SysFileDeployer\filesAndVersions - line 17 (C)\Classes\SysFileDeployer\isUptodate - line 3 (C)\Classes\SysFileDeployer\main - line 8 (C)\Classes\Info\startup - line 30» И в данном методе переменная _sysInfoAction=null… В общем, работа прекращается при проверке !sysFileDeployer.isUptodate() ошибкой «Сбой запроса на разрешение типа "FileIOPermission". (S)\Classes\FileIOPermission\demand (S)\Classes\WinAPIServer\createFile - line 26 (S)\Classes\WinAPIServer\getFileDate - line 13 (S)\Classes\WinAPIServer\getFileModifiedDate - line 10 (S)\Classes\SysFileDeploymentFile\serverVersion - line 5 (S)\Classes\SysFileDeploymentFile\parmServerVersion - line 4 (S)\Classes\SysFileDeployment\getServerVersion - line 5 (S)\Classes\SysFileDeployer\filesAndVersions - line 17 (C)\Classes\SysFileDeployer\isUptodate - line 3 (C)\Classes\SysFileDeployer\main - line 8 (C)\Classes\Info\startup - line 30» -------------------------------------------------------- Выясняется что в методе Info.addв следующей строке if (!_sysInfoAction && !_helpUrl && hasSecuritykeyAccess(securitykeynum(SysDevelopment), AccessType::View)) { session = new xSession(); if(session.clientKind() == ClientType::Client) { _sysInfoAction = SysInfoAction_Editor::newStack(); } } Метод SysInfoAction_Editor::newStack() возвращает null… ------------------------------------------------- кстати, в метод info.add() курсор каким-то чудом переходит сразу после кода в методе WinAPIServer.createfile // check file I/O permission if(_flags == #OPEN_EXISTING) { fileIOPerm = new FileIOPermission(_fileName,'r'); } else { fileIOPerm = new FileIOPermission(_fileName,'w'); } fileIOPerm.demand(); данный кусок я закомментировал и только после этого вроде как при входе аксапта спрашивает "В клиентской установке отсутствуют файлы, необходимые для работы Microsoft Dynamics", при подтверждении установки возникает ошибка: Сбой запроса на разрешение типа "FileIOPermission". (S)\Classes\FileIOPermission\demand (S)\Classes\BinData\loadFile (S)\Classes\SysFileDeployment\getServerFile - line 15 (C)\Classes\SysFileDeployment\copy - line 4 (C)\Classes\SysFileDeployment\run - line 7 (C)\Classes\SysFileDeployer\run - line 26 (C)\Classes\SysFileDeployer\main - line 9 (C)\Classes\Info\startup - line 30 уже не знаю куда дальше копать... ((((( |
|
11.06.2007, 19:02 | #213 |
Lean Six Sigma
|
А если сделать с помощью ресурсов?
|
|
11.06.2007, 19:05 | #214 |
Участник
|
вообщем сделал с помощью ресурсов, т.е. переписал метод loadImage:
void loadImage(FormButtonControl _but, str _name) { resourceNode xresourceNode = new resourceNode(); SysElementName imgName; ; imgName=_name+'_bmp'; xresourceNode = SysResource::getResourceNode(imgName); _but.normalImage(SysResource::getImagePath(xresourceNode.treeNodeName())); } предварительно создал ресурсы из файлов-иконок с названиями имяфайла_расширение, т.е. например leftbut_bmp... теперь возникает вопрос - где хранятся ресурсы? )))) |
|
12.06.2007, 04:05 | #215 |
Участник
|
SysFileDeployment* FIX
Цитата:
Сообщение от ZhanR
блин, чета не получается у меня решить задачу с использованием SysFileDeployer. В общем у меня проблема такая - DAX4.0
при отладке дохожу при проверке версии файла (даты модификации) до info.add(), в нем _txt = «Сбой запроса на разрешение типа "FileIOPermission". кстати, в метод info.add() курсор каким-то чудом переходит сразу после кода в методе WinAPIServer.createfile Цитата:
Цитата:
Теперь ведь в AX4 использовать для работы на сервере «опасные API» просто так нельзя - надо явно запрашивать разрешения на это Цитата:
Implementing Code Access Security
Code access security must be implemented by the dangerous API owner and all consumers of the dangerous API. 1. The owner secures the dangerous API by implementing a specific type of permission class and calling the demand() method on that class 2. Each API consumer must explicitly request permission to invoke a secured dangerous API by calling the assert() method on the permission class. Application code will break unless both of these steps are completed.
Последний раз редактировалось gl00mie; 12.06.2007 в 04:11. Причина: форматирование :) |
|
|
За это сообщение автора поблагодарили: mazzy (15), belugin (5), kashperuk (10), alex55 (1). |
12.06.2007, 09:50 | #216 |
Участник
|
Спасибо. Хорошо бы добавить все это в статью на axapta.mazzy.ru
|
|
13.06.2007, 09:42 | #217 |
Участник
|
|
|
13.06.2007, 10:15 | #218 |
Участник
|
Инкорпорировал вот сюда:
http://erpkb.com/Axapta/AvtoregistracijaActiveX |
|
13.06.2007, 16:10 | #219 |
Lean Six Sigma
|
to belugin.
Максим, в "официальной" версии есть проблема с картинками - они располагаются в каталоге клиента Аксапта. ZhanR реализовал вариант с ресурсами, при котором этот вопрос решён. Можно включить в "официальную" версию это (или другое) решение вопроса с необходимостью добавлять файлы в инсталляцию клиента? |
|
13.06.2007, 16:36 | #220 |
Участник
|
Цитата:
Сообщение от Ned
to belugin.
Максим, в "официальной" версии есть проблема с картинками - они располагаются в каталоге клиента Аксапта. ZhanR реализовал вариант с ресурсами, при котором этот вопрос решён. Можно включить в "официальную" версию это (или другое) решение вопроса с необходимостью добавлять файлы в инсталляцию клиента? 2. Может быть добавить в плагинАПИ событие "загрузка ресурса"? |
|
Теги |
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами |
|
|