![]() |
#1 |
Axapta Retail User
|
Обьясните механизм
1. Обьясните, пожалуйста, механизм сохранения фильтров пользователей в axapte.
2. Как в ClassFactory получить название вызывающего обьекта (класс, форма, отчет ).? |
|
![]() |
#2 |
Участник
|
1. Методы Pack(), Unpack()
2. xsession::xppCallStack(); Пример использования Global::callStack2infolog()
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#3 |
Участник
|
Утоянения к ответу AndyD
1. Физически - это таблица SysLastValue. В ней просто сохранятся все настройки пользователя (метод Pack()), а потом они же считываются (метод Unpack()). Одна запись этой таблицы - один комплект настроек для текущего класса, формы и т.п. 2. Для версии AXAPTA 2.5 - никак |
|
![]() |
#4 |
Axapta Retail User
|
Спасибо!
Еще вот тут нашел информацию. к делу относящуюся - http://www.axforum.info/forums/show...ht=sysLastValue 2. я имел ввиду как получить название элемента из AOT ? скажем /Form/Myform - если вызывается формой |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от novic
2. я имел ввиду как получить название элемента из AOT ?
скажем /Form/Myform - если вызывается формой
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#6 |
Axapta Retail User
|
Все же не очень понятно, Вы не могли бы поподробнее разьяснить.
в методе callStack2infolog непонятно мне одно. в нем стек вызовов попадает в контейнер вот так: Код: container stack = xSession::xppCallStack(); |
|
![]() |
#7 |
Участник
|
Наверное я туплю, но уже несколько раз перечитал вопрос и никак его не пойму.
![]() То что возвращает xSession::xppCallStack() вы изменить не можете, но можете обрабатывать данные после вызова фукции как вам нужно Напишите подробнее, что хотите сделать
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#8 |
Axapta Retail User
|
Нет, скорее всего я некорректно ставлю вопрос, поскольку не силен пока в Axapte.
У меня есть имя обьекта - скажем форма, (или отчет, или класс) откуда вызывается метод моего класса. Я бы хотел получать путь к этому обьекту в виде AOT/Forms/MyForm , так же как в xSession::xppCallStack() - возвращается путь к методу, его вызывающего. \Forms\MyForm\Methods\run Layer: usr |
|
![]() |
#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; |
|
![]() |
#10 |
Участник
|
Получать путь где - в форме или классе?
На самом деле непонятно, что вы хотите сделать в принципе. Передавайте в параметрах метода или инициализируйте перед его вызовом переменные класса нужными вам данными и делайте обработку. Завязываться на стек вызовов стоит только в информационных целях, так его формат не определен и может изменяться от версии к версие
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#11 |
Moderator
|
Цитата:
Сообщение от novic
У меня есть имя обьекта - скажем форма, (или отчет, или класс) откуда вызывается метод моего класса.
Я бы хотел получать путь к этому обьекту в виде AOT/Forms/MyForm Код: info(xUtilElements::getNodePath(xUtilElements::find(UtilElementType::Form, "SalesTable")));
__________________
Андрей. Последний раз редактировалось Dron AKA andy; 02.11.2005 в 12:34. |
|
![]() |
#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. |
|
![]() |
#13 |
Axapta Retail User
|
Спасибо большое!
По - научному, то что надо ![]() |
|