Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизПринудительная сортировка в сетке. Найти похожие ветки
← →
Kostafey © (2006-11-24 10:54) [0]Хотел узнать в каком направленни нужно двигаться чтобы придти к тому, чтобы итоговые значения выводились бы в конце сетки.
Итак, содержимое сетки (DBGridEh) сформировано в результате SQL-запроса к SQL Server. В запросе дописал union, где и были посчитаны "итого" (в сетке это еще одна строчка). Но эта Итого в сетке размещается не в конце а в середине. А как сделать чтобы она оказалась в конце ?
1) Сделать сортировку по числовому полю. Тогда Итого точно попадет в конец, но требуется сортировка по другому критерию.
2) Использовать Footer в DBGridEh, но я этим пользоваться не умею, а самое главное непонятно как работать с этим Футером при экспорте данных из сетки в тот же Excel.
Есть еще способы или возможны только 2 указанных?
← →
Плохиш © (2006-11-24 10:58) [1]
> Kostafey © (24.11.06 10:54)select ...., 1 as Dummy from ...
union
select ...., 2 as Dummy from ....
order by Dummy, ...
← →
clickmaker © (2006-11-24 11:01) [2]а компонент DBSumList из той же EhLib пробовал?
← →
Kostafey © (2006-11-24 11:06) [3]
> а компонент 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 ";
← →
Плохиш © (2006-11-24 11:09) [4]
> Kostafey © (24.11.06 11:06) [3]
>
> > а компонент DBSumList из той же EhLib пробовал?
>
> Нет не пробовал. Это аналог сетки ?
>
>
> > Плохиш © (24.11.06 10:58) [1]
>
> Ммм... сортировка должна быть по строковому значению.
Вместо многоточий можешь записать всё что душе угодно, даже свои запросы.
← →
clickmaker © (2006-11-24 11:12) [5]
> [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
← →
Kostafey © (2006-11-24 11:15) [6]> Вместо многоточий можешь записать всё что душе угодно, даже
> свои запросы.
Или я опять что-то не понял или мы опять скатились до банатьного "поменяй прокладку между клавиатурой и стулом" ? :))
← →
ЮЮ © (2006-11-24 11:21) [7]Да уж, прогладку пора менять :)
"select 1 Dummy, a.PCH_NAME, "+
...
"union "+
"Select 2, ""ITOGO:"", "+
...
"order by 1, 2";
← →
Плохиш © (2006-11-24 11:25) [8]
> ЮЮ © (24.11.06 11:21) [7]
Опередил :-)order by Dummy, PCH_NAME
, думается, так автору понятнее будет :-)
← →
Anatoly Podgoretsky © (2006-11-24 11:30) [9]> Kostafey (24.11.2006 10:54:00) [0]
1. ни в каком, поскольку задача решения не имеет
2. вот это и использовать и нет нужды решать не решаемую задачу
← →
Kostafey © (2006-11-24 11:33) [10]> "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 ";
← →
Kostafey © (2006-11-24 11:39) [11]> И что такое Dummy ?
Не кидате помидорами, понял впрос дурацкий.
Но как убрать отображение первого столбца (цифрами 1,1,1,1,1,2) ?
← →
Плохиш © (2006-11-24 11:53) [12]
> Kostafey © (24.11.06 11:39) [11]
> > И что такое Dummy ?
>
> Не кидате помидорами, понял впрос дурацкий.
>
> Но как убрать отображение первого столбца (цифрами 1,1,1,
> 1,1,2) ?
Надо почитать справку по используемому компоненту для показа данных и поискать у него свойства показа/скрытия отображаемых столбцов.
← →
Anatoly Podgoretsky © (2006-11-24 11:53) [13]> Kostafey (24.11.2006 11:33:10) [10]
Ты куда выводишь?
Скрыть чтоли не можешь?
Тогда смотри свойство Columns у объекта вывода.
← →
Kostafey © (2006-11-24 17:39) [14]> Тогда смотри свойство Columns у объекта вывода.
Columns.Items[7].Visible:=false;
Все, разобрался всем спасибо !
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.046 c