Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

TDBGridEh   Найти похожие ветки 

 
bon   (2004-07-15 13:45) [0]

Доброго дня!
Уменя есть результат запроса

field1     field2    field3
 100        5,7      3,2
 100        4,5      7,2
 100        5,9      1,7

Как отобразить в Гриде

field1     field2    field3
 100        5,7      3,2
  -        4,5      7,2
  -        5,9      1,7
т.е. в столбце field1 не показывать повторения ???


 
Sandman25 ©   (2004-07-15 14:44) [1]

Можно сделать через вычислимое поле.
В OnCalcField пишем:
var
FieldAsInteger: Integer;
begin
 Field1AsInteger := Field1.AsInteger;
 if Field1AsInteger = PreviousFieldAsInteger{модульная переменная} then
   CalcField1.AsString := "-"
 else
 begin
   PreviousFieldAsInteger := Field1AsInteger;
   CalcField1.AsInteger := Field1AsInteger;
 edn;
end


 
bon   (2004-07-15 15:17) [2]

Sandman25 ©  (15.07.04 14:44) [1]
Сенк"с за совет,  помогло!!!


 
Johnmen ©   (2004-07-15 15:34) [3]

Хм...
А теперь попробуй походить в гриде вниз и особенно наверх...
:)))


 
Sandman25 ©   (2004-07-15 16:09) [4]

[3] Johnmen ©   (15.07.04 15:34)

Да, нехорошо получается :(


 
Sandman25 ©   (2004-07-15 16:31) [5]

А все из-за того, что с точки зрения реляционных СУБД порядок записей не важен.

select field1, field2, field3,
case
 when rowid = (select min(rowid) from t where field1=a.field1)
 then cast(field1 as char(10))
else
 cast("---" as char(10))
end calcfield1
 from t a
 order by field1, rowid


 
Sandman25 ©   (2004-07-15 16:34) [6]

или вообще

select *,
case
when rownum = (select min(rownum) from a b where b.field1=a.field1)
then cast(field1 as char(10))
else
cast("---" as char(10))
end calcfield1
from
(select field1, field2, field3
 from t
order by field1
) a


 
Johnmen ©   (2004-07-15 16:52) [7]

>Sandman25 ©

Всё из-за того, что желаемое автором поведение идеологически неверно для НД, в которых предполагается двусторонняя навигация. И безусловно из-за Sandman25 ©   (15.07.04 16:31) [5]
:)


 
Sandman25 ©   (2004-07-15 17:04) [8]

[7] Johnmen ©   (15.07.04 16:52)

Почему двусторонняя навигация является препятствием? При отображении на бумаге именно так и делают часто.
Возможно, автору лучше использовать какой-нибудь DBTreeView, тогда данные можно будет группировать по Field1.


 
Johnmen ©   (2004-07-15 17:09) [9]

>Sandman25 ©   (15.07.04 17:04) [8]

Потому, что на бумаге мы видим результат односторонней навигации...


 
Sandman25 ©   (2004-07-15 17:14) [10]

Ну, в общем смысле, да. Меня запутало, что мы можем пальцем по листу водить в любом направлении, даже по диагонали :)


 
Johnmen ©   (2004-07-15 17:15) [11]

:)


 
TohaNik ©   (2004-07-15 17:51) [12]

Класс


 
bon   (2004-07-22 16:09) [13]

Какие будут ещё идеи?


 
Sandman25 ©   (2004-07-22 16:11) [14]

Перекачать данные в ClientDataSet с аналогичной структурой + еще поле.


 
Соловьев ©   (2004-07-22 16:13) [15]

ИМХО, нарушается 1-я нормальная форма. Я бы сделал действительно с TreeView, или 2 грида - мастер и детайл


 
Johnmen ©   (2004-07-22 16:24) [16]

>Какие будут ещё идеи?

А у тебя за неделю так ни одна и не появилась ?!
:)


 
Sandman25 ©   (2004-07-22 16:28) [17]

[16] Johnmen ©   (22.07.04 16:24)

"а зачем? Есть же форум..." (c) Соловьев



Страницы: 1 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.055 c
14-1091342262
Ani
2004-08-01 10:37
2004.08.15
Кто нибудь знает исходник прог которая отабражает введенные число


1-1091510617
race1
2004-08-03 09:23
2004.08.15
pointers


14-1090678034
Андрей Сенченко
2004-07-24 18:07
2004.08.15
Параметры БАТников


4-1089031212
sergeii
2004-07-05 16:40
2004.08.15
Как поменять текст в Edit-e


1-1090873061
Serge_
2004-07-27 00:17
2004.08.15
Нити потоки TThread кому интересно тыкайте.