24.10.2005, 11:55 | #1 |
Axapta Retail User
|
Обьясните механизм
1. Обьясните, пожалуйста, механизм сохранения фильтров пользователей в axapte.
2. Как в ClassFactory получить название вызывающего обьекта (класс, форма, отчет ).? |
|
24.10.2005, 12:14 | #2 |
Участник
|
1. Методы Pack(), Unpack()
2. xsession::xppCallStack(); Пример использования Global::callStack2infolog()
__________________
Axapta v.3.0 sp5 kr2 |
|
24.10.2005, 13:52 | #3 |
Участник
|
Утоянения к ответу AndyD
1. Физически - это таблица SysLastValue. В ней просто сохранятся все настройки пользователя (метод Pack()), а потом они же считываются (метод Unpack()). Одна запись этой таблицы - один комплект настроек для текущего класса, формы и т.п. 2. Для версии AXAPTA 2.5 - никак |
|
24.10.2005, 16:16 | #4 |
Axapta Retail User
|
Спасибо!
Еще вот тут нашел информацию. к делу относящуюся - http://www.axforum.info/forums/show...ht=sysLastValue 2. я имел ввиду как получить название элемента из AOT ? скажем /Form/Myform - если вызывается формой |
|
24.10.2005, 21:39 | #5 |
Участник
|
Цитата:
Сообщение от novic
2. я имел ввиду как получить название элемента из AOT ?
скажем /Form/Myform - если вызывается формой
__________________
Axapta v.3.0 sp5 kr2 |
|
01.11.2005, 18:07 | #6 |
Axapta Retail User
|
Все же не очень понятно, Вы не могли бы поподробнее разьяснить.
в методе callStack2infolog непонятно мне одно. в нем стек вызовов попадает в контейнер вот так: Код: container stack = xSession::xppCallStack(); |
|
01.11.2005, 19:32 | #7 |
Участник
|
Наверное я туплю, но уже несколько раз перечитал вопрос и никак его не пойму.
То что возвращает xSession::xppCallStack() вы изменить не можете, но можете обрабатывать данные после вызова фукции как вам нужно Напишите подробнее, что хотите сделать
__________________
Axapta v.3.0 sp5 kr2 |
|
02.11.2005, 11:21 | #8 |
Axapta Retail User
|
Нет, скорее всего я некорректно ставлю вопрос, поскольку не силен пока в Axapte.
У меня есть имя обьекта - скажем форма, (или отчет, или класс) откуда вызывается метод моего класса. Я бы хотел получать путь к этому обьекту в виде AOT/Forms/MyForm , так же как в xSession::xppCallStack() - возвращается путь к методу, его вызывающего. \Forms\MyForm\Methods\run Layer: usr |
|
02.11.2005, 11:28 | #9 |
Axapta Retail User
|
Примерно скажем вот так:
Код: container stack = xSession::xppCallStack(); counter n; TreeNodePath Path; int line; ; setPrefix(_prefix); for (n = 3; n <= conLen(stack); n += 2) { Path = conPeek(stack, n); } return path; |
|
02.11.2005, 11:31 | #10 |
Участник
|
Получать путь где - в форме или классе?
На самом деле непонятно, что вы хотите сделать в принципе. Передавайте в параметрах метода или инициализируйте перед его вызовом переменные класса нужными вам данными и делайте обработку. Завязываться на стек вызовов стоит только в информационных целях, так его формат не определен и может изменяться от версии к версие
__________________
Axapta v.3.0 sp5 kr2 |
|
02.11.2005, 11:56 | #11 |
Moderator
|
Цитата:
Сообщение от novic
У меня есть имя обьекта - скажем форма, (или отчет, или класс) откуда вызывается метод моего класса.
Я бы хотел получать путь к этому обьекту в виде AOT/Forms/MyForm Код: info(xUtilElements::getNodePath(xUtilElements::find(UtilElementType::Form, "SalesTable")));
__________________
Андрей. Последний раз редактировалось Dron AKA andy; 02.11.2005 в 12:34. |
|
02.11.2005, 11:57 | #12 |
Участник
|
Если по научному
X++: container stack = xSession::xppCallStack(); TreeNodePath Path; TreeNode tn; ; Path = conPeek(stack, 3); if (Path) { tn = TreeNode::findNode(Path); while (tn && !tn.AOTObjectNode()) tn = tn.AOTparent(); if (tn) Path = tn.treeNodePath(); else Path = ""; } return path;
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 02.11.2005 в 12:08. |
|
02.11.2005, 13:07 | #13 |
Axapta Retail User
|
Спасибо большое!
По - научному, то что надо |
|