![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не получается отобразить в 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;