Текущий архив: 2006.02.12;
Скачать: CL | DM;
ВнизКак произвести фильтр в отфильтрованном? Найти похожие ветки
← →
49 Cent (2006-01-24 21:50) [0]Суть в следующем. С помощью ниже указанного кода, происходит фильтрация с ориентиром на выделенную ячейку в Dbgrideh. Т.е выделил я в Dbgrid в поле "Клиент" ЧП пупкин, нажал на кнопку и осталсись записи только Пупкина.
s:=dbgrideh1.SelectedField.FieldName;
s1:=dbgrideh1.SelectedField.AsString;
with ADOTable1 do begin
Filter := s+"=" + QuotedStr(s1);
Filtered := True;
end;
Задача заключается в том, чтобы произвести фильтрацию в отфильтрованном. Т.е, к примеру, оставил я только Пупкина и теперь мне необходимо в отфильтрованном оставить, к примеру, только отгруженные заказы этого клиента, для чего нужно произвести фильтр в соответсвующем поле "Отгрузка". Как выполнить данную задачу?
← →
Desdechado © (2006-01-24 22:02) [1]Filter := Filter + " AND " + допстрокафильтра
← →
49 Cent (2006-01-24 23:19) [2]Я не очень понимаю, как использовать этот код на 1 кнопке. Т.е если у меня около 7 потенциальных полей, то получается мне надо использовать 6 +"And"+? И потом каждый раз кликая на определенном поле я с помощью указанного кода:
s:=dbgrideh1.SelectedField.FieldName;
s1:=dbgrideh1.SelectedField.AsString;
фиксирую только текущее поле и значение этого поля. Получается, чтобы проводить фильтр по профильтрованному, мне нужно постоянно фиксировать (запоминать) предыдущие поля и значения, которые использовались при первоначальной фильтрации? Как бы мне решить эту задачу? Не могли бы вы объяснить немного подробней?
← →
Mike Kouzmine © (2006-01-24 23:52) [3]49 Cent (24.01.06 21:50) Свяжи клиентов (не мазо) с операциями и они "автоматически" будут фильтроватся по клиентам. А уж там как хочешь.
← →
49 Cent (2006-01-25 00:43) [4]
> Свяжи клиентов (не мазо) с операциями и они "автоматически"
> будут фильтроватся по клиентам.
Ээээ. Не очень понял. С какими операциями? И что такое "не мазо"? И потом задача не состоит в том, чтобы связать именно клиентов. Пример про Пупкина просто пример.
← →
Mike Kouzmine © (2006-01-25 00:49) [5]Клиенты
1 Вася Пупкин
2 Не Вася
Операции
1 Приход
2 Расход
Движение
1 1 123
2 1 23
1 2 144
делаешь мастер детаил связку по клиентам и движению, а потом просто тупо фильтруешь Движение
← →
49 Cent (2006-01-25 01:50) [6]Я признаться очень не люблю такие моменты. Тебе объесняют, а ты тупишь. Кажется сейчас такой случай. Признаться первый раз слышу про мастер детаил связку. Может статьи какие есть? Или может найдутся добрые люди и объяснет как чайнику указанный Mike Kouzmine способ?
← →
ЮЮ © (2006-01-25 03:15) [7]
> Получается, чтобы проводить фильтр по профильтрованному,
> мне нужно постоянно фиксировать (запоминать) предыдущие
> поля и значения, которые использовались при первоначальной
> фильтрации?
Зачем? Всё это уже прописано в Filter. Тебе только остаётся добавить новоу условие в фильтр
Filter := Filter + " AND " + допстрокафильтра [1]
Плюс кнопка очистки фильтра
← →
Плохиш © (2006-01-25 11:11) [8]
> 49 Cent (25.01.06 01:50) [6]
> Я признаться очень не люблю такие моменты. Тебе объесняют,
> а ты тупишь.
Я что-то не совсем понял кто кому в этой ветке помогает :-)
← →
Mike Kouzmine © (2006-01-25 13:39) [9]49 Cent (25.01.06 01:50) [6] Признаться первый раз слышу про мастер детаил связку
Не понял. Ты же с базой работаешь (типа аксесса), или я ошибся?. А о чем ты слышал?
← →
49 Cent (2006-01-25 15:25) [10]
> Зачем? Всё это уже прописано в Filter. Тебе только остаётся
> добавить новоу условие в фильтр
> Filter := Filter + " AND " + допстрокафильтра
Просьба опять же не кидать тухлятиной, но допстрокафильтра, должна (как я понимаю) содержать имя поля и непосредственно строку по которой идет фильтр. Т.е если речь идет о фильтре сначала по одному полю, а затем по другому, то как я понимаю, необходим код типа такого:
> with ADOTable1 do begin
> Filter := s+"=" + QuotedStr(s1)+"And"+ ss+"=" + QuotedStr(ss1);
>
> Filtered := True;
> end;
, где s и ss имена полей по которым идет фильтр, а s1 и ss1 значения по которым идет фильтр. Так вот! В этой ситуации по любому надо фиксировать сначала первый фильтр (s и s1) и второй фильтр (ss и ss1). Или нет?
← →
Desdechado © (2006-01-25 16:42) [11]49 Cent (25.01.06 15:25) [10]
> Просьба опять же не кидать тухлятиной,
ты тормоз?
> сначала по одному полю, а затем по другому
| |
V V
> Filter := Filter + " AND " + допстрокафильтра
← →
Desdechado © (2006-01-25 16:43) [12]все предыдущие фильтры у тебя уже в фильтре содержатся
тебе к нему осталось добавить новый кусок (допстроку)
← →
49 Cent (2006-01-25 17:52) [13]
> ты тормоз?
Космонавтом. :)
Анекдот есть такой:
-Мальчик как тебе зовут?
-тишина
- А сколько тебе лет?
- Гриша.
- А кем хочешь стать?
- 12
- Ты тормоз чтоли?
- Космонавтом
:)))))))
Всем спасибо за хелп, я понял.
Страницы: 1 вся ветка
Текущий архив: 2006.02.12;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.036 c