| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		_Андрей_
 
 
  Joined: 19 Jul 2007 Posts: 19 Location: Иванов А.В. Occupation: Миком (сист. адм.) Interests: Астрахань
  | 
		
			
				 Posted: 04 Oct 2007 10:15    Post subject: Сортировка | 
				     | 
			 
			
				
  | 
			 
			
				| Подскажите пожалуйста, как в оборотной ведомости сделать сортировку по коэффициенту оборачиваемости? Если можно - поподробнее... И еще: очень часто приходится отчеты экспортировать в Excel, где они получаются огромные, куча лишних строк и столбцов.... Можно ли как нибудь от них избавится? | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		_Андрей_
 
 
  Joined: 19 Jul 2007 Posts: 19 Location: Иванов А.В. Occupation: Миком (сист. адм.) Interests: Астрахань
  | 
		
			
				 Posted: 05 Oct 2007 13:01    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Не понимаю причину молчания... Это очень сложно? Или я что-то не то спросил    | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		dshlykov
 
 
  Joined: 02 Aug 2005 Posts: 172 Location: Дмитрий Шлыков Occupation: Компания "БЭСТ" Interests: Москва
  | 
		
			
				 Posted: 08 Oct 2007 17:27    Post subject: Re: Сортировка | 
				     | 
			 
			
				
  | 
			 
			
				Добрый день!
 
 	  | _Андрей_ wrote: | 	 		  | Подскажите пожалуйста, как в оборотной ведомости сделать сортировку по коэффициенту оборачиваемости? Если можно - поподробнее... И еще: очень часто приходится отчеты экспортировать в Excel, где они получаются огромные, куча лишних строк и столбцов.... Можно ли как нибудь от них избавится? | 	  
 
За сортировку в складских отчетах отвечает параметр cFilting. В данный параметр записывется выражение из итоговых строк курсора, по которому необходимо сортировать отчет. В Вашем случае необходимо добавить следующий код в событие OnClick кнопки выполнить:
 
 	  | Code: | 	 		  | DataSet1.Params['cSorting'] := 'iif(SB+SE=0,0,SR/(0.5*(SB+SE)))'; | 	  Если необходимо сделать сортировку по другим полям и коэффициенту оборачиваемости код должен быть следующим (например по группе и коэффициенту оборачиваемости):
 
 	  | Code: | 	 		  | DataSet1.Params['cSorting'] := 'GRUP+STR(iif(SB+SE=0,0,SR/(0.5*(SB+SE))),11,4)'; | 	  
 
 	  | _Андрей_ wrote: | 	 		  | И еще: очень часто приходится отчеты экспортировать в Excel, где они получаются огромные, куча лишних строк и столбцов.... Можно ли как нибудь от них избавится? | 	  
 
Избавится от них можно только выравняв все объекты отчета друг относительно друга. Любой зазор междк объектами дает такой эффект при экспорт _________________ С уважением, Дмитрий Шлыков
 
Компания "БЭСТ" | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		_Андрей_
 
 
  Joined: 19 Jul 2007 Posts: 19 Location: Иванов А.В. Occupation: Миком (сист. адм.) Interests: Астрахань
  | 
		
			
				 Posted: 02 Nov 2007 11:38    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				| Еще такой вопрос: как поставить условие, чтобы в отчет выводились (не выводились) товары, с коэффициентом оборачиваемости, скажем, менньше 0.1? | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		dshlykov
 
 
  Joined: 02 Aug 2005 Posts: 172 Location: Дмитрий Шлыков Occupation: Компания "БЭСТ" Interests: Москва
  | 
		
			
				 Posted: 02 Nov 2007 12:29    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Добрый день!
 
 	  | _Андрей_ wrote: | 	 		  | Еще такой вопрос: как поставить условие, чтобы в отчет выводились (не выводились) товары, с коэффициентом оборачиваемости, скажем, менньше 0.1? | 	  Этот вопрос можно решить двумя способами:
 
1. Установить итоговую фильтрацию источника:
 
 	  | Code: | 	 		  | DataSet1.Params['cHaving'] := DataSet1.Params['cHaving'] + if(LENGTH(DataSet1.Params['cHaving'])<>0,' and ','')+'iif(SB+SE=0,0,SR/(0.5*(SB+SE)))>0.1'; | 	  
 
2. Не выводить эти строки в отчете. Для этого в событии OnBeforePrint секции MasterData надо проверить это условие: вывводить или не выводить секцию:
 
 	  | Code: | 	 		  If if(DialogForm.DataSet1."SB"+DialogForm.DataSet1."SE"=0,0,DialogForm.DataSet1."SR"/(0.5*(DialogForm.DataSet1."SB"+DialogForm.DataSet1."SE")))<0.1 Then Visible := False
 
Else Visible := True; | 	 
  _________________ С уважением, Дмитрий Шлыков
 
Компания "БЭСТ" | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |