![]() |
#13 |
Участник
|
Для форм в тройке можно использовать такой код
X++: #winapi #define.VK_DOWN(0x28) #define.VK_RIGHT(0x27) #properties void OpenControlInAOT() { TreeNode treeNode; TreeNode treeNode1; int wndHandle; str name; FormBuildControl contr; FormControl control; FormBuildDesign fbd; container c; int i; int k; str s; Object obj; ; obj = this.selectedControl(); if (!obj || !SysDictClass::isEqualOrSuperclass(classIdget(obj), classNum(FormControl))) return; fbd = this.form().design(); control = fbd.control(obj.id()); while (control) { c += [control.name()]; if (control.containerId()) control = fbd.control(control.containerId()); else break; } treeNode = this.form(); treeNode = treeNode.AOTfindChild("Designs"); treeNode = treeNode.AOTfindChild("Design"); for (i=conlen(c);i>=1;i--) { if (!treeNode) break; treeNode1 = treeNode.AOTfirstChild(); if (treeNode1) { s = treeNode1.AOTgetProperties(); Name = findProperty(S,#PropertyName); while (treeNode1 && Name != conpeek(c, i)) { treeNode1 = treeNode1.AOTnextSibling(); if (treeNode1) { s = treeNode1.AOTgetProperties(); Name = findProperty(S,#PropertyName); } } } treeNode = treeNode1; } if (!treeNode) return; s = treeNode.treeNodePath(); s = strdel(s, strscan(s, "\\Forms\\", 1, strlen(s)), strlen("\\Forms\\")); wndHandle = treeNode::findNode(this.form().treeNodePath()).AOTnewWindow(); wndHandle = winapi::getWindow(wndHandle, #GW_CHILD); while (wndHandle) { name = winapi::getWindowText(wndHandle); if (name == "TreePane") { for (i=1;i<=strlen(s);i++) { if (substr(s, i, 1) == "\\") { winapi::sendMessageEx(wndHandle, #WM_KEYDOWN, #VK_RIGHT, 0); if (i > 1) winapi::sendMessageEx(wndHandle, #WM_KEYDOWN, #VK_DOWN, 0); } else winapi::sendMessageEx(wndHandle, #WM_CHAR, char2num(substr(s, i, 1), 1), 0); } } wndHandle = winapi::getWindow(wndHandle, #GW_HWNDNEXT); } } Можно повесить на какой-либо стандартный таск (к примеру, 295 - "Что это такое") в классе SysSetupFormRun этот метод, тогда можно будет использовать для любой формы
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: kashperuk (4). |
Теги |
aot, opennewwindow, законченный пример, полезное |
|
![]() |
||||
Тема | Ответов | |||
HRM,склонение ФИО и все все все | 22 | |||
axaptafreak: AOT search within search results | 0 | |||
Вопрос про AOT | 2 | |||
AOT->documentation | 3 | |||
Кое-что нового про AOT | 2 |
|