Форум: "Базы";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
ВнизФильтрация в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c