Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1137492043
Tigraman
2006-01-17 13:00
2006.02.05
Hotkey и Unit


3-1134117050
kyn66
2005-12-09 11:30
2006.02.05
Поиск в таблице с составным индексом


3-1133953847
Andr.son
2005-12-07 14:10
2006.02.05
Есть ли что-то типа MaskEdit , но для БД


2-1137491317
impuls
2006-01-17 12:48
2006.02.05
Вопрос по синтаксису


8-1125124794
Пантелеев Иван
2005-08-27 10:39
2006.02.05
Контроль сигнала микрофона





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский