Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.11.2011, 13:05
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию Ширина столбца в DBGrid

Здравствуйте!
Сливаю две таблицы Fam и Zar посредсвом Left Outer Join. На форме есть DBGrid1. Его свойство Visible в false. К DBGrid-у привязан неактивный ADOQuery1. На кнопке имеем следующий код:

Цитата:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT fam.TAB_N, fam.FIO, zar.Zarabotok FROM Fam LEFT OUTER JOIN Zar ON Fam.Tab_N=Zar.Tab_N');
ADOQuery1.Active:=True;
DBGrid1.Visible := true;
end;

Два чайниковских вопроса:
1. Как программно задать ширину столбцов, выводимых в DBGrid1?
2. Как в числовом поле (в данном случае Zar.Zarabotok) получить '0,00' в случае, если для записи левой таблицы не найдётся соответствия в правой?
Ответить с цитированием
  #2  
Старый 07.11.2011, 13:42
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,713
Репутация: 52347
По умолчанию

1.
Код:
for i := 0 to DBGrid1.Columns.Count - 1
 do DBGrid1.Columns.Items[i].Width := 60;
2.
Код:
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  
Старый 07.11.2011, 13:52
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию

Большое спасибо за ответ!
Ответить с цитированием
  #4  
Старый 07.11.2011, 13:56
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию

Всё работает, только выводится просто '0'. Хотелось бы '0,00'
Ответить с цитированием
  #5  
Старый 07.11.2011, 14:01
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,713
Репутация: 52347
По умолчанию

http://www.delphisources.ru/forum/sh...53&postcount=2
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 07.11.2011, 14:39
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию

Извините за бестолковость, но применительно к вышеотображённому коду - как это должно выглядеть?
Ответить с цитированием
  #7  
Старый 07.11.2011, 18:12
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,713
Репутация: 52347
По умолчанию

ПКМ на иконке вашего AdoQuery. Выбираем FieldsEditor.
ПКМ на открывшемся окошке. Выбираем Add all fields
Для нужного поля выставляем свойство DisplayFormat = ###.##
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #8  
Старый 08.11.2011, 12:38
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию

Я понял Ваш ответ, но Add all fields можно применять, я так понимаю, только к активным ADOQuery. У меня же SQL-запрос закладывается в кверик в процессе работы программы, активизируется тоже в процессе работы программы. А если делать так, как Вы сказали, то имею - ADOQuery1: Missing SQL properety.
Ответить с цитированием
  #9  
Старый 08.11.2011, 13:12
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Red_Garry
Я понял Ваш ответ, но Add all fields можно применять, я так понимаю, только к активным ADOQuery. У меня же SQL-запрос закладывается в кверик в процессе работы программы, активизируется тоже в процессе работы программы. А если делать так, как Вы сказали, то имею - ADOQuery1: Missing SQL properety.

Ты же на оракле по-моему сидишь. Вот такой запрос попробуй:
Код:
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
__________________
Google в помощь

Последний раз редактировалось Ildar-tsr, 08.11.2011 в 13:28.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter