![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Пробую сделать похожую программу, но не знаю как реализовать:
1)фильтр по дате 2) чтобы в DBComboBox1 выводился не КОД(автомобиля,клиента и т.д), а фамилия, марка и тд. Справа на скриншоте пример, как должно быть. Слева то как это выглядит у меня. Снизу то как выглядит эта таблица Надеюсь понятно объяснил =) |
|
#2
|
|||
|
|||
|
1. фильтр можно сделать 2мя способами. Первый - переоткрывать параметризаованый запрос. Второй - у DataSet есть специальный метор - OnFilter если не ошибаюсь. Там можно проверять - надо ли показывать запись или нет.
2. Для этого надо использовать другой компонент - DBLookupComboBox. Он имеет ссылку на дополнительную таблицу из которой и берет данные для отображения. |
|
#3
|
||||
|
||||
|
Вот как у меня в одном месте программы сделана фильтрация по датам. Это фрагмент кода, использующий свойство Filter датасета:
Код:
if ((chbDate1.Checked) or (chbDate2.Checked)) then
begin
s := '';
da1 := DateToStr(dtp1.Date);
da2 := DateToStr(dtp2.Date);
if chbDate1.Checked then
begin
if chbDate2.Checked then
begin
s := '((Data_dok >= "' + da1 + '") AND (Data_dok <= "' + da2 + '"))';
end
else
begin
s := 'Data_dok >= "' + da1 + '"';
end;
end
else
begin
if chbDate2.Checked then
begin
s := 'Data_dok <= "' + da2 + '"';
end;
end;Код:
fq.Filter := s; fq.Filtered := true; Последний раз редактировалось Guaho, 03.05.2020 в 12:24. |