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

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

DBGrid. Отображение "Да" вместо "True" [D6, ACCESS]


Phoenix9000 ©   (2005-04-20 12:45:00) 

Доброго времени суток, уважаемые мастера

У меня возникла проблемма. В таблице DBGrid есть два столбца, в которые выводятся данные из БД. Данные представляют собой тип BOOLEAN, соответственно в DBGrid идет отображение True или False.

Что нужно сделать, чтобы вместо TRUE отображалось ДА, а вместо FALSE - НЕТ ? Сделать это нужно так. чтобы в самой базе данных данные не менялись, а поменялось только их отображение в DBGrid.

Заранее спасибо.


Soft   (2005-05-04 18:49:00) [1]

Event в DbGrid OnDrawDataCell.

Вот код в качестве примера
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
 Field: TField; State: TGridDrawState);
begin
 if Field.FieldName='MY_FIELD'{обязательно в Upper Case} then
   DBGrid1.Canvas.TextRect(Rect,Rect.Left,Rect.Top,Field.AsString{или перевести в стринг процедурой перевода});
end;


natalie   (2005-05-04 10:01:00) [2]

stone ©   (04.05.05 09:54) [13]
Спасибо, получилось, со скобками действительно я того... Это просто утро :)

А мысль про отрисовку грида все равно интересна.


ANB   (2005-05-04 09:56:00) [3]


> natalie   (04.05.05 09:52) [12]
- рисовать это поле ручками в OnDrawColumnCell. Имхо - не лучший вариант. Лучше через калькулируемые поля.


stone   (2005-05-04 09:54:00) [4]


> natalie   (04.05.05 09:52) [12]
> TBooleanField(dmOrders.qOrders.FieldByName('Accepted').DisplayValues)
>
> ошибка та же:(

TBooleanField(dmOrders.qOrders.FieldByName('Accepted') ).DisplayValues


natalie   (2005-05-04 09:52:00) [5]

TBooleanField(dmOrders.qOrders.FieldByName('Accepted').DisplayValues)

ошибка та же:(
А можно  прояснить смысл использования здесь TBooleanField  ?
Erich
"через отрисовку грида этот вопрос решить"- интересно узнать подробней, что имеется в виду.


Erich   (2005-05-03 22:11:00) [6]

А можно через отрисовку грида этот вопрос решить...


_1   (2005-05-03 16:38:00) [7]

Ещё вариант -
[Client]Dataset c двумя записями:

Value  DisplayValue
--------------------
True      Да
False     Нет
--------------------
.
И Lookup-поля для других Dataset'ов с полями типа Boolean.


Плохиш   (2005-05-03 16:31:00) [8]

TBooleanField(dmOrders.qOrders.FieldByName('Accepted').DisplayValues)


natalie   (2005-05-03 16:18:00) [9]

Думала, что нашла решение такой же проблемы, ан нет, не вышло.
Привожу буквально:
dmOrders.qOrders.FieldByName('Accepted').DisplayValues:='V; ';

[Error] MainForm.pas(176): Undeclared identifier: 'DisplayValues'
Делать- то что?


mozart   (2005-04-21 20:50:00) [10]

Table1.FieldByName('MyField').DisplayValues:='Да;Нет';


Megabyte   (2005-04-20 15:40:00) [11]

Кликаешь по компоненту TTable правой кнопкой мыши, выбираешь Fields editor...
Добавляешь все поля(по умолчанию). Выбираешь нужное поле(BOOLEAN) и в свойстве DisplayValues через ";" ставишь отображаемые значения: в твоем случае "да;нет"!(соблюдай порядок для соответствия)


Johnmen   (2005-04-20 13:02:00) [12]

Все подробности, как обычно, по F1


Phoenix9000   (2005-04-20 12:56:00) [13]

To Slider007

Если можно поподробнее.


Phoenix9000   (2005-04-20 12:52:00) [14]

To Johnmen

Пожалуйста поподробнее. :)


Slider007   (2005-04-20 12:52:00) [15]

.. IIf(Requests!Completed=true,"Да","Нет") AS Field ..

это кусок запроса


Johnmen   (2005-04-20 12:50:00) [16]

или Calculated поле в наборе данных
или OnGetText для поля


Наверх

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