| 
	 | 
| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Добрый день, уважаемые коллеги. 
		
		
		
		
		
		
		
	Столкнулась с проблемой - при построении lookup-списка, основанного на временной таблице, в случае, если в поле введено какое-то значение, в списке присутствуют элементы начиная с него. Предшествующие данному элементу значения в списке недоступны. Подскажите, как быть. Стирать вручную поле перед перевыбором из списка - неудобно для пользователя в связи с большим объёмом обрабатываемых документов. Если стирать программно, непонятно, по какому условию возвращать стёртое значение обратно. Возможно, есть какое-либо свойство, которое предотвращает автопоиск в списке?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			 Не доступны - означает отсутствуют в списке? Значение в поле может влиять позиционирование курсора в лукапе. "Проскролить" вверх точно нельзя? 
		
		
		
		
		
		
		
	Т.е. лукап перепрограммирован? Можете выложить код?  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Попробуйте не мышкой скролить вверх, а на клавиатуре стрелочкой.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Ivanhoe as is..  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			1. Прокрутить вверх точно нельзя. 
		
		
		
		
		
		
		
	2. Код достаточно длинный, затрудняюсь, какую часть лучше привести. Вначале строится запрос, потом наполняется временная таблица, затем она используется как основа для лукапа: X++:     sysTableLookup.parmTmpBuffer(emplTitleOrgTmp);
    sysTableLookup.parmTableID(tablenum(emplTitleOrgTmp));
    sysTableLookup.parmCallingControl(_formControl);
    sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, Name));
    sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, Titleid));
    sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, Title));
    sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, Organization));
    sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, documentnum));
    sysTableLookup.performFormLookup(); | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
X++: SysTableLookup::newParameters(tablenum(emplTitleOrgTmp), _ctrl, false); X++: sysTableLookup.parmUseLookupValue(false);Решение быстрое, но и с ограничениями. 
				__________________ 
		
		
		
		
	Возможно сделать все. Вопрос времени  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Pustik (3). | |
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В Ax3.0 SP 3 такого параметра в классе SysTableLookup нет. Конечно, его можно доработать. 
		
		
		
		
		
		
		
	X++: SysTableLookup::newParameters(tablenum(emplTitleOrgTmp), _ctrl, false); sysTableLookup.parmUseLookupValue(false);  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А у Вас Ax3.0 SP 3? В трешке у нас насколько я помню таких глюков не было. И по стрелочке список вверх поднимался и колесиком тоже.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Вот код из АХ 2009 (\Classes\SysTableLookup\formRun): X++: args = new Args(); args.object(form); if(useLookupValue && !tmpBuffer) //highlighting existing value doesn't work with temp tables { args.lookupField(lookupField); switch (callingControl.handle()) { case classnum(FormStringControl): callingStringControl = callingControl; args.lookupValue(callingStringControl.text()); break; } } formRun = classfactory.formRunClass(args); form = formRun.form(); 
				__________________ 
		
		
		
		
	Возможно сделать все. Вопрос времени  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не знал, что появилась такая фича в 2009. Спасибо.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их.  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В методе объявите переменную 
		
		
		
		
		
		
			X++: FormRun frmRun; X++: sysTableLookup.performFormLookup(); X++: frmRun = sysTableLookup.formRun();
frmRun.args().lookupValue('');
this.performFormLookup(frmRun); 
		
				__________________ 
		
		
		
		
		
			-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 08.12.2011 в 12:45.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: S.Kuskov (5). | |
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Помню про такую багу в АХ2009(при переходе с ней столкнулся).Она проявляется только в тех лукапах, в которых используются временные таблицы.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: DesertBrowser (1). | |
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо! 
		
		
		
		
		
		
		
	X++: [COLOR="Red"]this[/COLOR].performFormLookup(frmRun);X++: static void EmplLookup_SignPermit(FormControl _formControl, date _date = systemdateget()) ... void lookup() { ; LookUpClass::EmplLookup__SignPermit(this,CustInvoiceJour.InvoiceDate); } PS использую Axapta 3.0  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Уже разобралась (по примеру SysTableLookup класса): 
		
		
		
		
		
		
		
	X++: FormStringControl callingStringControl; ; callingStringControl = _formControl; callingStringControl.performFormLookup(frmRun);  | 
| 
	
 | 
| 
	
	 | 
	
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
		
  |