| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Управление курсором в темповом датасоурсе
			 
			
			Как переместить курсор темпового датасоурса на запись с определенным значением индексного поля? Формализирую: например, забивается дс темповыми данными где liftNo индексное поле. Показывать надо все записи, но указатель должен находиться на записи с определенным значением LiftNo.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Axapta has seduced me deadly!  
			 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Программист 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если я правильно понял вопрос, то это будет выглядеть примерно так: 
		
		
		
		
		
		
		
	X++: tmpTable tmpTable; // объявляете курсор своей временной таблицы tmpTable.liftNo = 1234; // присваиваете полю liftNo значение, которое необх. найти DataSourceName_ds.findRecord( tmpTable ); // датасорс позиционируется на записи с liftNo = 1234 // где DataSourceName - имя источника данных на вашей форме  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Боец 
		
			
	 | 
	
	
	
		
		
		
		 X++: tmpTable tmpTable; // объявляете курсор своей временной таблицы tmpTable.liftNo = 1234; // присваиваете полю liftNo значение, которое необх. найти DataSourceName_ds.findRecord( tmpTable ); // датасорс позиционируется на записи с liftNo = 1234 // где DataSourceName - имя источника данных на вашей форме X++: tmpTable tmpTable; // объявляете курсор своей временной таблицы select firstonly tmpTable // !!! перевыбираем курсор where tmpTable.liftNo = 1234; // присваиваете полю liftNo значение, которое необх. найти DataSourceName_ds.findRecord( tmpTable ); // датасорс позиционируется на записи с liftNo = 1234 // где DataSourceName - имя источника данных на вашей форме  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Хм, спасибо, пробовал то же самое, но почему-то не получилось, попробую ещё раз.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Axapta has seduced me deadly!  
			 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Цитата: 
	
![]() Вам нужно делать поиск не по новообъявленной переменной временной таблице, а именно по той, которая содержит ссылку на файл с данными Или же расшарить его и на новую переменную с помощью метода setTmpData()  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Точно! Просто в прошлый раз поздно вечером не пришла таки трезвая мысль) Спасибо!
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Axapta has seduced me deadly!  
			 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Хм, странно, однако, рекорд-то находится, но визуально в гриде не выделяется( 
		
		
		
		
		
		
			Рефреш дс"а не помог( 
				__________________ 
		
		
		
		
	Axapta has seduced me deadly!  
			 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я так понимаю, что временная таблица заполняется и курсор устанавливается во время открытия формы? то есть она сразу должна открыться с определенной выделенной записью? 
		
		
		
		
		
		
		
	Если так, то вопрос: А в каком методе выполняете позиционирование курсора?  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Именно так. в ране.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Axapta has seduced me deadly!  
			 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Тогда непонятно. У меня работает примерно так: 
		
		
		
		
		
		
		
		
			В ините формы: X++: public void init() { Table2 __Table2 ; super(); //Инициализируем временную таблицу __Table2.Field1 = '1'; __Table2.Field2 = 1; __Table2.insert(); __Table2.Field1 = '2'; __Table2.Field2 = 2; __Table2.insert(); __Table2.Field1 = '3'; __Table2.Field2 = 3; __Table2.insert(); //Укажем датасурсу курсор с данными Table2.setTmpData(__Table2); //выберем конкретную запись select __Table2 where __Table2.Field2 == 2; //сохраним в переменной _Table2.data(__Table2); } ран: X++: public void run() { super(); Table2_ds.findRecord(_Table2); } X++: public class FormRun extends ObjectRun { Table2 _Table2; } может быть есть еще какие-то условия? Последний раз редактировалось altap; 04.08.2008 в 17:29.  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			То-то и оно, что не понятно. Сначала думал, что вся соль в том, что этот темповый дейтасоурс джоинит ещё один не темповый, воссоздал примерную ситуацию с другой формой и другими таблицами - всё работает. Буду копать дальше( Спасибо за попытку помочь.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Axapta has seduced me deadly!  
			 | 
| 
	
 |