Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

Фильтрация в DBGrid   Найти похожие ветки 

 
Сергей А.   (2005-12-02 22:36) [0]

У меня есть Аксесовский файл, а в этом файле есть обычная таблица. С помощью ADOTable1 в DBGrid1 я загружаю таблицу из Аксесовского файла. Теперь важно провести фильтрацию или иными словами отобразить в DBGrid1 только те строки, если скажем в поле "Клиент" есть строка "ЧП Иванов". Я решал эту задачу путем создания в Аксесовском файлах запросов, а потом вызовом этого запроса, но уже из Делфи. Получалось неплохо. Но проблема в том, что я не могу забивать новые данные в DBGrid1, если информация сгенирорована запросом. Т.е если я загрузил данные через ADOTable1, то все нормально и я могу изменить значения ячейки. Если же я загрузил данные в DBGrid1 через запрос ADOStoredProc1, то тогда появляется ошибка при попытке забить новые данные. Делфи пишет, что не могу найти строку для обновления. Как решить данную задачу? Мне нужно проводить фильтрацию и затем иметь возможность отредактировать отфильтрованные данные. Можно ли не пользоваться запросами, а непосредственно в DBGrid смотреть на значения скажем поля "Клиент" и если в этом поле, например, текст указанный в edit1, то эту строку не скрывать, а все остальные спрятать? Можно так сделать? Если можно просьба подсказать исходник.

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


 
Сергей А.   (2005-12-03 00:55) [1]

Я уже нашел ответ на мой первый вопрос, но никак не могу разобраться со 2 задачей. В Экселе есть очень удобная функция "Условное форматирование". Можно задать условие на столбик "А", что если в нем появится к примеру слово "нет", то эту ячейку окрасить красным цветом, а если слово "да", то эту ячейку окрасить зеленым цветом. Можно ли сделать такое же в DBGrid? К примеру, если я забил текст "да" в поле "отгрузка", то ячейка в которой я забил текст "да" должна окраситься зеленым цветом. Как такое сделать? Очень нужен исходник!

И еще! Можно ли сделать так, чтобы забив текст в поле "Клиент" DBGrid проверил текст указанный в поле и если он подходит под определенные условия, то в этой же строке, но в другом поле (например, "тип клиента") появился определенный текст. К примеру! Если в поле клиент указан "ЧП Пупкин", то в поле тип клиента должно появиться "А".


 
Virgo_Style ©   (2005-12-03 01:07) [2]

Сергей А.   (03.12.05 0:55) [1]

DBGrid.OnDrawDataCell


 
Сергей А.   (2005-12-03 01:41) [3]

2 Virgo_Style ©
Спасибо! Правда у меня на DBGrid.OnDrawDataCell не сработало, но я с помощью совета нашел вот эту страницу:
http://www.gyry.net/?d=catalog&did=377

Там в примечание сказано:
Borland не рекомендует использовать в новых разработках обработчик события OnDrawDataCell, которому пришел на смену обработчик OnDrawColumnCell. Старый вызов сохранен для совместимости.



Страницы: 1 вся ветка

Текущий архив: 2006.02.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
15-1137067233
ANB
2006-01-12 15:00
2006.02.05
Про поворотники


9-1113343432
Ке
2005-04-13 02:03
2006.02.05
Редактор карты и вэй-поинтов


2-1137672247
First
2006-01-19 15:04
2006.02.05
Округление до двух знаков...


2-1137519817
49 Cent
2006-01-17 20:43
2006.02.05
Проблемы с фильтрацией в Dbgrid


15-1137400355
Kerk
2006-01-16 11:32
2006.02.05
Новая попытка захвата объекта РФ в Крыму