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