![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здравствуйте! 
		
	
		
		
		
		
		
	
		
		
	
	
	Сливаю две таблицы Fam и Zar посредсвом Left Outer Join. На форме есть DBGrid1. Его свойство Visible в false. К DBGrid-у привязан неактивный ADOQuery1. На кнопке имеем следующий код: Цитата: 
	
 Два чайниковских вопроса: 1. Как программно задать ширину столбцов, выводимых в DBGrid1? 2. Как в числовом поле (в данном случае Zar.Zarabotok) получить '0,00' в случае, если для записи левой таблицы не найдётся соответствия в правой?  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 1.   
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	for i := 0 to DBGrid1.Columns.Count - 1 do DBGrid1.Columns.Items[i].Width := 60; Код: 
	SELECT fam.TAB_N, fam.FIO, iif(isnull(zar.Zarabotok),0.0,zar.Zarabotok) as Zarabotok FROM Fam LEFT OUTER JOIN Zar ON Fam.Tab_N=Zar.Tab_N  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Большое спасибо за ответ! 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Всё работает, только выводится просто '0'. Хотелось бы '0,00' 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Извините за бестолковость, но применительно к вышеотображённому коду - как это должно выглядеть? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 ПКМ на иконке вашего AdoQuery. Выбираем FieldsEditor.  
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	ПКМ на открывшемся окошке. Выбираем Add all fields Для нужного поля выставляем свойство DisplayFormat = ###.##  | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Я понял Ваш ответ, но Add all fields можно применять, я так понимаю, только к активным ADOQuery. У меня же SQL-запрос закладывается в кверик в процессе работы программы, активизируется тоже в процессе работы программы. А если делать так, как Вы сказали, то имею - ADOQuery1: Missing SQL properety. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
 Ты же на оракле по-моему сидишь. Вот такой запрос попробуй: Код: 
	select f.Tab_N, f.FIO, nvl(z.Zarabotok, '0,00') as Zarabotok from Fam f, Zar z where f.Tab_N = z.Tab_N(+) Я только не понял, а заработок тоже надо к виду 0,00 приводить? P.S. А если не оракл, то как было сказано выше: Код: 
	select f.Tab_N, f.FIO, IIF(IsNull(z.Zarabotok),'0,00',z.Zarabotok) as Zarabotok from Fam f LEFT OUTER JOIN Zar z ON f.Tab_N = Z.Tab_N Последний раз редактировалось Ildar-tsr, 08.11.2011 в 13:28.  |