Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1091181704
alex_sc
2004-07-30 14:01
2004.08.15
Вопрос


14-1090681372
Harim
2004-07-24 19:02
2004.08.15
Как варить пельмени?


14-1090765251
Baron
2004-07-25 18:20
2004.08.15
Всем любителям НЛО посвящается...


14-1090471679
syte_ser78
2004-07-22 08:47
2004.08.15
Как уговорить "звукозапись" писать больше одной минуты?


14-1091105447
ИдиотЪ
2004-07-29 16:50
2004.08.15
еще один веселый день





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский