| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| Дениска 
 
 
 Joined: 26 Feb 2002
 Posts: 649
 
 
 
 
 | 
			
				|  Posted: 29 Jul 2007 18:29    Post subject: Индекс по значению из другой таблицы |   |  
				| 
 |  
				| Нужно создать временный индекс по фамилии по таблице salary\TDocsC (строки табличного документа), где поля фамилия нет, а есть поле с табельным номером (TDocsC->TNum) сотрудника. Фамилию можно брать из CardSpri->FAM (CardSpri->(DBSEEK(UPPER(TDocsC->TNum)))) 
 В БЭСТ-е в табличных документах есть возможность сортировать людей по фамилии, при этом похоже формируется временный индекс, так как постоянного индекса нет. Мне же такая возможность нужна в плагине который вызвается по Ctrl-F5 и выгружает данные в текстовый файл.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| grey 
 
 
 Joined: 12 Jan 2004
 Posts: 297
 Location: Родионов С.Г.
 Occupation: ООО Бухгалтер, программист
 Interests: Набережные Челны
 
 | 
			
				|  Posted: 29 Jul 2007 23:27    Post subject: |   |  
				| 
 |  
				| А SQL запросы в харборе есть? Сделал бы join без всяких индексов. _________________
 http://grey-soft.narod.ru - примочки к программам серии  БЭС
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| nordk 
 
 
 Joined: 27 Jun 2005
 Posts: 1000
 Location: Горбунов Константин
 Occupation: БЭСТ-Партнер
 Interests: СПб
 
 | 
			
				|  Posted: 30 Jul 2007 14:28    Post subject: |   |  
				| 
 |  
				| По вопросам создания временных индексов у нас много тем было. Посмотрите плз.
 Создаете временный индексный файл и для него делайте
 Функция ORDCREATE()
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Дениска 
 
 
 Joined: 26 Feb 2002
 Posts: 649
 
 
 
 
 | 
			
				|  Posted: 30 Jul 2007 15:01    Post subject: |   |  
				| 
 |  
				|  	  | nordk wrote: |  	  | По вопросам создания временных индексов у нас много тем было. Посмотрите плз.
 Создаете временный индексный файл и для него делайте
 Функция ORDCREATE()
 | 
 
 Я посмотрел все темы с CreateTempIndex и OrdCreate. Сам уже использовал обе функции. Проблема в том, что индексировать надо по другой таблице.
 
 Пробовал, к примеру так:
 
  	  | Code: |  	  | TDocsC -> (OrdCreate(GlobalTmpPath+ "CDX_TDocsC", "FIO", "Upper(CardSpri->FAM)", "CardSpri->(DBSEEK(UPPER(TDocsC->TNum)))"))
 
 | 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Behemoth 
 
  
 Joined: 15 Mar 2002
 Posts: 155
 Location: Новиков Алексей Юрьевич
 Occupation: ПБОЮЛ
 Interests: Пермь
 
 | 
			
				|  Posted: 30 Jul 2007 15:09    Post subject: |   |  
				| 
 |  
				| Добрый день. 
 Сейчас проверил такой вариант:
 
  	  | Code: |  	  | select cardssec set relation to upper(tnum) into cardspri
 createtempindex('upper(cardspri->fam)')
 dbeval({|| sayandwait(tnum+' '+cardspri->fam)})
 
 | 
 Вполне работоспособно.
 _________________
 С уважением, Новиков Алексей.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		|  |