Страница 2 из 2
					
				
				Добавлено: 12 дек 2005, 19:41
				 edward_K
				попробуйте вместо
_loop opt_dbt ordered by opt_dbt.date_dolg(desc) 
dbt._loop opt_dbt ordered by index opt_dbt_5
а если просто loop то ошибок не возникает?
было еще, что при некоторых операциях незя мешать данные с разных вьюшек. А можно индекс и во from указать
from opt_dbt(opt_dbt_5,desc)
			 
			
					
				
				Добавлено: 12 дек 2005, 20:03
				 coolibin
				Добавить нужно "opt_dbt_77=date_change+date_dolg," ? 
Но это всеравно не решит проблемы "нет индекса", но попробую с радостью - делать нечего...
обращаю внимание, что если индекс по обеим датам, то ORDER BY не нужен вобще, единственно, что нужно установить порядок индекса или сразу в атрибутах указать 
opt_dbt_77=date_change+date_dolg (desc)
 
			 
			
					
				
				Добавлено: 14 дек 2005, 19:36
				 Optimist
				coolibin
ок, попробую пересоздать таблицу с добавлением такого индекса.
edward_K
Ваша конструкция заработала, только без "dbt." впереди.
А можно ли в _loop как-то указать чтоб цикл был в обратном порядке?
Индекс во вьюхе указать не могу - выскакивает ошибка "нет индекса" - об этом я уже писал.
 
			 
			
					
				
				Добавлено: 21 дек 2005, 13:46
				 levtov
				Table struct mySaldoMC
	 (  Ykaz          : date,
	    SummaMC       : double )
	    With Index (Y = Ykaz(desс));
Считай в память и вип сам автоматом отсортирует по убыванию.
			 
			
					
				
				Добавлено: 23 дек 2005, 18:57
				 Optimist
				levtov
а как считать в память? В АРД это прокатит или только в вип-интерфейсах?
Вообще уже сделал нужный отчет: 13000 контрагентов в АРД за почти четыре часа пересчитывает. Долговато, после НГ основной пересчет хочу в оффлайн выносить.
			 
			
					
				
				Добавлено: 26 дек 2005, 08:13
				 levtov
				АРД я не знаю. А в випе примерно так:
 Table struct SelectedOrgs
	 (   NRec_Org    : comp,       // Организация
	     NRec_Dog    : comp,       // Договор
	     Nrec_DO     : comp,       // Документ основание 
	     DO_Date     : date,       // Дата Док. Основания   
	     SUM_SAL     : double,     // Сумма
	     Por_raschet : string,     // Порядок расчёта
	     MC_USL      : string      // За что
	 )
	 with Index
	 (  Y = NRec_Org (Unique), X=DO_Date(Desc) ); 
.........
_Loop по базе с выборкой NrecOrg
{......
	if ( modifier GetFirst SelectedOrgs 
	 Where (( NrecOrg == SelectedOrgs.NRec_Org   )) = tsOk)  then
   {   SelectedOrgs.SUM_SAL := SelectedOrgs.SUM_SAL + MakeCrSum;     SelectedOrgs.NRec_Dog:= NrecDog;
 Update current SelectedOrgs; } 
		else
		{  ClearBuffer( #SelectedOrgs ); 
	   	        SelectedOrgs.NRec_Org   := NrecOrg; 
              SelectedOrgs.NRec_Dog   := NrecDog;
	            SelectedOrgs.SUM_SAL    := MakeCrSum;
	            SelectedOrgs.Nrec_DO    := NrecDO;
	            SelectedOrgs.DO_Date    := DateDo;
	            SelectedOrgs.MC_USL     :='';
	            SelectedOrgs.Por_raschet:='';
      		insert current SelectedOrgs; 
        } // end ELSE        
}
Насчёт нехватки ОЗУ можно не переживать - Галактика как мне кажется использует файл подкачки если ОЗУ не хватает.