| 
			
			 | 
		#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 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо большое!  
		
		
		
		
		
		
		
	По - научному, то что надо  
		 | 
| 
	
 |