![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Принудительная сортировка в сетке.
Kostafey © (2006-11-24 10:54:00)Хотел узнать в каком направленни нужно двигаться чтобы придти к тому, чтобы итоговые значения выводились бы в конце сетки.
Итак, содержимое сетки (DBGridEh) сформировано в результате SQL-запроса к SQL Server. В запросе дописал union, где и были посчитаны "итого" (в сетке это еще одна строчка). Но эта Итого в сетке размещается не в конце а в середине. А как сделать чтобы она оказалась в конце ?
1) Сделать сортировку по числовому полю. Тогда Итого точно попадет в конец, но требуется сортировка по другому критерию.
2) Использовать Footer в DBGridEh, но я этим пользоваться не умею, а самое главное непонятно как работать с этим Футером при экспорте данных из сетки в тот же Excel.
Есть еще способы или возможны только 2 указанных?
Kostafey (2006-11-24 17:39:00) [1]> Тогда смотри свойство Columns у объекта вывода.
Columns.Items[7].Visible:=false;
Все, разобрался всем спасибо !
Плохиш (2006-11-24 11:53:00) [2]
> Kostafey © (24.11.06 11:39) [11]
> > И что такое Dummy ?
>
> Не кидате помидорами, понял впрос дурацкий.
>
> Но как убрать отображение первого столбца (цифрами 1,1,1,
> 1,1,2) ?
Надо почитать справку по используемому компоненту для показа данных и поискать у него свойства показа/скрытия отображаемых столбцов.
Anatoly Podgoretsky (2006-11-24 11:53:00) [3]> Kostafey (24.11.2006 11:33:10) [10]
Ты куда выводишь?
Скрыть чтоли не можешь?
Тогда смотри свойство Columns у объекта вывода.
Kostafey (2006-11-24 11:39:00) [4]> И что такое Dummy ?
Не кидате помидорами, понял впрос дурацкий.
Но как убрать отображение первого столбца (цифрами 1,1,1,1,1,2) ?
Kostafey (2006-11-24 11:33:00) [5]> 'select 1 Dummy, a.PCH_NAME, '+
> ...
> 'union '+
> 'Select 2, ''ITOGO:'', '+
> ...
> 'order by 1, 2';
О, кстати здорово, сортирует. Только вот появляется еще один столбик вначале.
И что такое Dummy ? Я написал:
'select 1 Dummy, a.PCH_NAME, '+
....
'union '+
'Select 2,''Итого :'', '+
....
'From PCH p '+
'order by 1, PCH_NAME ';
Anatoly Podgoretsky (2006-11-24 11:30:00) [6]> Kostafey (24.11.2006 10:54:00) [0]
1. ни в каком, поскольку задача решения не имеет
2. вот это и использовать и нет нужды решать не решаемую задачу
Плохиш (2006-11-24 11:25:00) [7]
> ЮЮ © (24.11.06 11:21) [7]
Опередил :-)
order by Dummy, PCH_NAME, думается, так автору понятнее будет :-)
ЮЮ (2006-11-24 11:21:00) [8]Да уж, прогладку пора менять :)
'select 1 Dummy,a.PCH_NAME, '+
...
'union '+
'Select 2, ''ITOGO:'', '+
...
'order by 1, 2';
Kostafey (2006-11-24 11:15:00) [9]> Вместо многоточий можешь записать всё что душе угодно, даже
> свои запросы.
Или я опять что-то не понял или мы опять скатились до банатьного "поменяй прокладку между клавиатурой и стулом" ? :))
clickmaker (2006-11-24 11:12:00) [10]
> [3] Kostafey © (24.11.06 11:06)
>
> > а компонент DBSumList из той же EhLib пробовал?
>
> Нет не пробовал. Это аналог сетки ?
TDBGridEh.SumList
Specifies parameters of SumList object.
property SumList:TDBGridEhSumList;
Description
SumList ensures sums values in footer cells if Footer.ValueType is set to fvtSum or fvtCount.
(c) EhLib Help
Плохиш (2006-11-24 11:09:00) [11]
> Kostafey © (24.11.06 11:06) [3]
>
> > а компонент DBSumList из той же EhLib пробовал?
>
> Нет не пробовал. Это аналог сетки ?
>
>
> > Плохиш © (24.11.06 10:58) [1]
>
> Ммм... сортировка должна быть по строковому значению.
Вместо многоточий можешь записать всё что душе угодно, даже свои запросы.
Kostafey (2006-11-24 11:06:00) [12]
> а компонент DBSumList из той же EhLib пробовал?
Нет не пробовал. Это аналог сетки ?
> Плохиш © (24.11.06 10:58) [1]
Ммм... сортировка должна быть по строковому значению.
Запрос-то вот какой (фрагмент):
'select a.PCH_NAME, '+
'(select count(b.PCH_COD)+ '+
'(select count(o.PCH_COD) '+
'from ZVK1ARX o '+
'where (o.DATE_ZVK between @DateFrom and @DateTo) '+
'and (o.PCH_COD = a.PCH_COD)) '+
'from ZVK1 b '+
'where (b.PCH_COD = a.PCH_COD) and '+
'(b.DATE_ZVK1 between @DateFrom and @DateTo)) as Kol1, '+
'round((select count(b.PCH_COD)+ '+
'(select count(o.PCH_COD) '+
'from ZVK1ARX o '+
'where (o.DATE_ZVK between @DateFrom and @DateTo) '+
'and (o.PCH_COD = a.PCH_COD)) '+
'from ZVK1 b '+
'where (b.PCH_COD = a.PCH_COD) '+
'and (b.DATE_ZVK1 between @DateFrom and @DateTo))*100.0/(0.0000001+'+inttostr(tmpCount1)+'),2) as Acount1, '+
............................................................
'from PCH a '+
'Where (a.PCH_NAME='''+QParam.PodrazdAnalizer+' '+
'union '+
'Select ''ITOGO:'', '+
inttostr(tmpCount1)+' as Kol1, '+
'((select count(b.PCH_COD)+ '+
'(select count(o.PCH_COD) '+
'from ZVK1ARX o '+
'where (o.DATE_ZVK between @DateFrom and @DateTo)) '+
'from ZVK1 b '+
'where (b.DATE_ZVK1 between @DateFrom and @DateTo)))*100.0/('+inttostr(tmpCount1)+'+0.0000001) as Acount1, '+
inttostr(tmpCount2)+' as Kol2, '+
............................................................
'From PCH p '+
'order by PCH_NAME ';
clickmaker (2006-11-24 11:01:00) [13]а компонент DBSumList из той же EhLib пробовал?
Плохиш (2006-11-24 10:58:00) [14]
> Kostafey © (24.11.06 10:54)
select ...., 1 as Dummy from ...
union
select ...., 2 as Dummy from ....
order by Dummy, ...