Главная страница
    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.48 MB
Время: 0.046 c
1-1137157199
manefesto
2006-01-13 15:59
2006.02.12
Создание объектов в dll и создание обработчиков для них.


1-1136897933
m_mike
2006-01-10 15:58
2006.02.12
Программа мешает завершению работы windows


1-1137350002
Gnobobel
2006-01-15 21:33
2006.02.12
Вызов функций EXE из DLL


15-1137501913
Yegorchic
2006-01-17 15:45
2006.02.12
Сотовый с ИК-портом...


1-1137173320
nordic3
2006-01-13 20:28
2006.02.12
Помогите! Help!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский