Главная страница
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.027 c
4-1132369201
Александр_
2005-11-19 06:00
2006.02.05
Работа с флешкой


2-1137858839
Змей
2006-01-21 18:53
2006.02.05
Пустой edit.text


3-1133870327
Lansky
2005-12-06 14:58
2006.02.05
OpenDataSource


2-1137672630
Marconi
2006-01-19 15:10
2006.02.05
StringGrid


1-1135970052
Allegarh
2005-12-30 22:14
2006.02.05
Поддержка нескольких языков в программе