C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Работа с компонентом DbGridEh
Oper01
Отправлено: 13.02.2007, 14:04


Станционный диспетчер

Группа: Участник
Сообщений: 145



Вывожу в компонент DbGridEh несколько полей из таблицы. (подключение ADO, база Access).
Есть одно текстовое поле в которое записаны нули и единицы. Пример: 010001001110010001011110010101.
Так вот, его отобразить в гриде мне нужно так, что если 1 в какой-то позиции — то это A1, например, в другой позиции — Б5 и т.д.. Если 0 — то никакого соответствия. Т.е. чтобы поле отображалось в виде A1А3Б5Б11 и т.д.
Надеюсь задачу объяснил ясно. Спасибо.
AVC
Отправлено: 13.02.2007, 14:35


Ветеран

Группа: Модератор
Сообщений: 1583



OnDrawDataCell если только показать, вычисляемое поле если нужно еще где то.
Или попробовать заставить заняться этим Access?
Oper01
Отправлено: 13.02.2007, 14:53


Станционный диспетчер

Группа: Участник
Сообщений: 145



Редактирование не требуется, только просмотр.
nawok78
Отправлено: 14.02.2007, 08:15


Станционный диспетчер

Группа: Участник
Сообщений: 115



цепляешься за OnDrawColumnCell
Тут поцедурка в которой и цвет ячейки меняеется и текст тоже (текст в конце)
Oper01
Отправлено: 15.02.2007, 17:53


Станционный диспетчер

Группа: Участник
Сообщений: 145



В событии DrawColumnCell пишу такой код:
CODE

       if (Column->Field->Name == "E1")
          DBGridEh1->Canvas->TextOut(Rect.Left, Rect.top,  "12345");

Но дело в том, что ячейка не перерисовывается, а только добавляется.
Т.е. после "12345" идёт продолжение того текста, кот был. в этом поле.

Как его убрать и заменить на "12345"?

Вернуться в Работа с базами данных в C++Builder