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

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

Как в DBGrid вывести в одном поле..... [D5, IB6.x]


viper ©   (2002-12-17 09:07:00) 

У меня есть таблица состоящая из трех полей, как в DBGrid вывести в одном поле эти три поля без пробелов (хоть примерный код)!


Johnmen   (2002-12-17 16:54:00) [1]

>MsGuns © (17.12.02 16:42)

Знаешь, я на 100% не буду утверждать, не проверял, не анализировал, но есть подозрения (подсознательные :)).
А насчет еще одного поля, считаю (лично мое философское убеждение, никому не навязываю), что более корректно и прозрачно с точки зрения логики приложения вычисляемое поле, чем переопределение вывода для уже существующего.


MsGuns   (2002-12-17 16:42:00) [2]

>Johnmen © (17.12.02 15:52)

Хочешь сказать, что OnCalcFields выполняется реже и быстрее, чем OnGetText для одного поля ? Не знаю - не знаю. Хочется верить авторитету, но как-то не можется. И потом, для первого способа надо сделать в датасете еще одно поле, а это уже хирургия :)))


-=Sergeante=-   (2002-12-17 16:05:00) [3]


> AsString вместо value.

Само сабой лучше asString. Просто в вопросе не указывается, какой именно тип данных используется.


Johnmen   (2002-12-17 15:52:00) [4]

>MsGuns © (17.12.02 15:33)

Просто хотел сказать, что это несколько медленнее, чем чисто вычисляемое поле и несколько, как мне думается, не вполне удачно(впрочем это не принципиально).


MsGuns   (2002-12-17 15:33:00) [5]

>Johnmen © (17.12.02 14:25)
>MsGuns © (17.12.02 13:38)
>Способ рабочий, но не быстрый...:)

???


Johnmen   (2002-12-17 14:25:00) [6]

>Sergey Masloff (17.12.02 09:11)

1) Самый простой и быстрый способ.
2) Не работает, когда хотя бы одно поле null :)

>-=Sergeante=- © (17.12.02 09:21)

см. выше пункт 2)

>Mike_Goblin © (17.12.02 12:25)

Самый громоздкий способ + см. выше пункт 2)

>MsGuns © (17.12.02 13:38)

Способ рабочий, но не быстрый...:)

Более быстрый : -=Sergeante=- © (17.12.02 09:21) + AsString вместо value.



MsGuns   (2002-12-17 13:38:00) [7]

>Mike_Goblin © (17.12.02 12:25)

А че так сложно ? А просто разместить в гриде одно из трех полей (поле 1), а в его (поля 1) обработчике OnGetText написать

Text := ..FieldByName("Pole1").AsString+" "+
..FieldByName("Pole2").AsString+" "+
..FieldByName("Pole3").AsString;

нельзя ?


Mike_Goblin   (2002-12-17 12:25:00) [8]

Сделать просмотр (View) на сервере, где объединить поля


-=Sergeante=-   (2002-12-17 09:21:00) [9]

Или OnCalcField:
begin
tbl1.fieldbyname("myCalcFld").value:=
tbl1.fieldbyname("myfld1").value+
tbl1.fieldbyname("myfld2").value+
tbl1.fieldbyname("myfld3").value
end


Sergey Masloff   (2002-12-17 09:11:00) [10]

select field1||field2||field3 my_three_fld from mytable?


Наверх

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