Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.061 c
15-1137986235
tigra
2006-01-23 06:17
2006.02.12
Библиотека RX Library


2-1137989054
dm37
2006-01-23 07:04
2006.02.12
Цвет сетки DBGrid


3-1134745044
kazar
2005-12-16 17:57
2006.02.12
копирование таблиц


8-1125484815
palgen
2005-08-31 14:40
2006.02.12
Как захватить кадр, используя DirectShow ?


2-1138172174
Der Nechk@ssoff
2006-01-25 09:56
2006.02.12
помогите зделать меню!