![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подмена полей в DBGride [D5, MSSQL]
-=[SDA]=- © (2003-08-28 09:50:00)
Вываливаю запрос в Grid, но некоторые поля имеют хитрые значения, например: "Н/У" - не установлено, или даты - 1.1.1900, или сокращенные названия, так вот хотелось бы, чтобы в БД оставалось всё по старому, а при выводе такие поля заменялись на новые значения, например: 1.1.1900 - "дата не введена" или "00-00-0000", Н/У - не установлена, вот! Пробовал на DrawDataCell писать типа: DBGrid1.Columns[Field.FieldNo-1].Field.Text := "ssssss"; - столбец строковый. Пишет: Query1: DataSet not in edit or insert mode.
Sergey13 (2003-08-28 10:08:00) [1]
2-=[SDA]=- (28.08.03 09:50)
Что то у тебя данные имеют уж очень "хитрые значения", ИМХО. 8-)
Я бы посоветовал поразбираться со структурой данных. Например вместо "Н/У" сделать просто NULL. Или дефолтом текущую дату присваивать. Смотря по задаче. И для дат желательно, ИМХО, выбирать соответствующий тип поля.
Zacho (2003-08-28 10:07:00) [2]
Еще вариант: использовать TDBGridEh, в нем есть такая фича
-=[SDA]=- (2003-08-28 10:06:00) [3]
Всем большое спасибо! Буду пробовать.
DenK_vrtz (2003-08-28 10:02:00) [4]
в MSSQL есть такое понятие как view? и конструкция типа case?
Если да, то нет ничего проще!
Соловьев (2003-08-28 10:02:00) [5]
> Пробовал на DrawDataCell писать типа: DBGrid1.Columns[Field.FieldNo-1].Field.Text
> := "ssssss"; - столбец строковый
все правильно пишет.
...
if Columns[0].Field.AsDateTime = "1.1.1900" then
TDBGrid(Sender).Canvas.DrawText(Rect.Left,Rect.Top,"дата не введена");
...
Fiend (2003-08-28 10:02:00) [6]тада используй у полей OnGetText & OnSetText.
там можешь пробразовать что и куда угодно
-=[SDA]=- (2003-08-28 09:58:00) [7]
А без вычисляемых полей как нибудь можно?
stone (2003-08-28 09:53:00) [8]
Создай вычисляемые поля и формируй их как тебе нравится. Их же и показывай.