![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Acсess и Делфи.
Сергей А. © (2005-11-29 21:30:00)Я не занимался БД поскольку раньше такой задачи не было, но сейчас возникла потребность решить некоторые задачи с помощью Delphi. Предистория такая! На работе я сделал в Аксесе файл в котором содержится 12 таблиц (по количеству месяцев) и определенные запросы. Я работаю непосредственно в таблицах. Скажем сейчас ноябрь, поэтому всю текущую информацию я записываю в соответствующую таблицу. Таблицы однотипны. В них около 20 полей: дата заказа, имя клиента, комплектация заказа, дата готовности и.т.д. Мне бы очень хотелось управлять этой таблицей из Делфи приложения. Под управлением я понимаю добавление новых записей, проведение сортировки, фильтрации (скажем нажав на кнопку оставить только определенных клиентов или цеха фабрики, которые выполняют заказ), подготовки отчетов для печати. Кроме того, очень важно, чтобы в определенных полях появлилсь значки в зависимости от содержания определенного поля. Например, у меня есть поле "тип клиента". Необходимо отследить если в поле "имя клиента" указан к примеру, ЧП Пупкин, то в поле "тип клиента" надо написать "VIP" и выделить эту ячейку скажем красным цветом.
Вопрос в связи с этим вот какой! Во-первых, можно ли выполнить все, что я до этого описывал с помощью Делфи на базе уже имеющегося Аксесовского файла. Если можно, то просьба указать какие компоненты нужно использовать и вообще в какую сторону "копать"?
Заранее благодарен.
Дева (2005-11-30 02:52:00) [1]С вопросом 1 не сталкивалась, если надо было просто руками меняла размер столбцев,
на вопрос 2 есть свойство Filter и Filtered
В Filter пишешь условия вильтрации (Field1 = DDD) и ставишь Filtered = true;
Если хочешь, чтобы фильтрация происходила из каких-то условий, которые задаешь например в Edit1, то можно
ADOQuery1.Filter:=Edit1.Text+' Like '''+Edit2.Text+'''';
ADOQuery1.Filtered:=true;
Virgo_Style (2005-11-30 00:30:00) [2]Сергей А. (30.11.05 0:16) [2]
2a. TDataSet.Filter, TDataSet.Filtred или DataSet.OnFilterRecord
2b. двойной клик по DBGrid (сначала выставить Connected и Active = true)
Сергей А. (2005-11-30 00:16:00) [3]У меня опять же 2 вопроса!
1 Вопрос.
В Аксесе сделанные мной таблицы имеют нормальный вид. Например, ширина столбца поля "код заказа" самая маленькая, а поле "примечание" самое большое. Потом там где у меня цифры в таблице, запятая идет после 2 знака, а в TDBGrid ширина столбцов одинаковая и после запятой идет куча знаков. Как сделать так, чтобы TDBGrid отображал таблицу также как и в Аксесе или как настроить TDBGrid?
2 Вопрос.
Когда я загрузил в TDBGrid Аксесовскую таблицу, то возникла необходимость установить фильтр. Причем понятно, что можно сделать запрос и этот запрос проведет нужную фильтрацию, но мне бы хотелось провести фильтрацию в рамках TDBGrid. Можно ли программно через TDBGrid провести фильтрование или скажем скрыть определенные поля?
Заранее благодарен.
Дева (2005-11-29 22:16:00) [4]ADO + JET
ADOTable - TableName просто выбираешь из списка свои готовые запросы
ADOQuery - там можно запрос SELECT * FROM Запрос1