![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в 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?