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

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

Принудительная сортировка в сетке.


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, ...


Наверх

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