Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не получается отобразить в DBGrid ; результат выполнения [D6, IB6.x]


Larisa ©   (2002-10-15 21:33:00) 

запроса с группировкой - поля отображаются, а совокупные характеристики - нет.

Заранее создаю DBGrid с нужным количеством полей, в приложении выполняется запрос вида:

"Select Name, sum(Weight) as Summa from Kont Group by Name",
a затем присваиваю значение св-ву FieldName:

DBGrid.Column[1].FieldName:="Summa";
Подскажите, пожалуйста, как справиться с проблемой.


MsGuns   (2002-10-15 22:22:00) [1]

Что значит "Совокупные характеристики" ? Второе поле с суммой ?
Если так, то при динамическом привязывании TDBGrid.DataSource к НОВОМУ НД, надо или переформировывать коллекцию колонок (что более правильно) или вообще не трогать Columns.

Пример

Form1.Grid1.DataSource := nil; // Отвязать грид от текущего НД
Form1.Query1.SQL.Clear;
Form1.Query1.SQL.Add("SELECT Name, SUM(Weight) as Summa");
Form1.Query1.SQL.Add(" FROM Kont");
Form1.Query1.SQL.Add(" GROUP BY Name");
try
Form1.Query1.Prepare;
Form1.Open;
Except
ShowMessage("Не могу обратиться к таблице <Kont> !");
exit;
end;
with Form1.Query1.Fields do
begin
[0].DisplayLabel := "Наименование";
[1].DisplayLabel := "Сумма";
[1].DisplayFormat := "0.00##";
end;
Form1.Grid1.Columns.RebuildColumns; // Очистить коллекцию колонок
Form1.Grid1.DataSource := Form1.Query1;
Form1.Grid1.Columns.RebuildColumns; // Иниц-ть новую коллекцию
with Form1.Grid1.Columns do
begin
[0].Title.Alignment := taCenter;
[0].Width := 120;
[1].Title.Alignment := taCenter;
[1].Width := 48;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо