Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c