![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
статические поля [D6, Paradox]
Andy Eremin © (2003-02-10 12:45:00)Мастера!
Статические поля не поддаются ни фильтрации, ни сортировке.
Как, например, отфильтровать fkLookup-поле?
Johnmen (2003-02-10 17:04:00) [1]>Andy Eremin © (10.02.03 14:58)
Не ясно, что непонятно...:)
Просто в обработчике OnFilterRecord "разглядываем" и анализируем поля записи на предмет возможности включения этой записи в фильтр. Если принято решение включить, то Accept:=True;
Поскольку OnFilterRecord вызывается каждый раз при обращении к записи (явном или нет), то получаем желаемое...
Andy Eremin (2003-02-10 14:58:00) [2]2 Johnmen
Ну, хорошо. Как вы посоветуете отфильтровать по статическому полю? Его нужно для начала создать, или воспользоваться SQL-запросом. Как это сделать?
Если Вы знаете, почему не покажете это на примере (можно даже на моем -> описан выше).
Johnmen (2003-02-10 14:49:00) [3]>Andy Eremin © (10.02.03 14:25)
>2 Johnmen
>Хотелось бы фильтровать подобно LIKE,
>а OnFilterRecord такого не позволяет (или я не знаю как),
Применяя OnFilterRecord можно фильтровать как угодно сложно !
Соловьев (2003-02-10 14:46:00) [4]В чем проблема то? все уже написано.
Andy Eremin (2003-02-10 14:44:00) [5]2 Соловьев
Таким образом мы соединили две таблицы. ЗДОРОВО.
Небольшая поправочка: третья таблица (Query1) также содержит поле Number и именно для ее записей необходимо сложить вышеупомятутые поля
Соловьев (2003-02-10 14:32:00) [6]Если ты хочешь по числовому полю, так зачем like? Эта функция работает со строками, а если преобразуешь поле в своем Query1
напиши где числовое поле:
cast(float_field as varchar(10))
Andy Eremin (2003-02-10 14:25:00) [7]2 Johnmen
Хотелось бы фильтровать подобно LIKE,
а OnFilterRecord такого не позволяет (или я не знаю как),
т.к. при добавлении к концу записи * или % выходит сообщение об ошибке (если поле типа Float, а не String)
Соловьев (2003-02-10 14:22:00) [8]2 Andy Eremin ©
select table1.name || table2.name as lookup
from table1, table2
where table1.numer=table2.numer
order by lookup
Andy Eremin (2003-02-10 13:51:00) [9]2 User_OKA
Вот и я допытываюсь того же.
Если никто не поможет - есть крайний вариант:
1. Создать временное поле и сделать его ключевым (для скорости)
2. Записать туда чего надо
3. Отфильтровать
4. После закрытия окна удалить поле
Но это такой гемор-р-рой
Johnmen (2003-02-10 13:47:00) [10]OnFilterRecord и хоть обфильтруйся...:)))
VAleksey (2003-02-10 13:46:00) [11]Если поле типа fkLookup то по нему методами компонента TTable отфильтровать нельзя.
Можно применить фильтрацию к справочнику, и затем отобразить только те записи, в которых значения поля для связи одно из значений, оставшихся в справочнике.
PS
Путано немного, но надеюсь понятно.
User_OKA (2003-02-10 13:45:00) [12]А зачем в структуру базы вникать? Вопрос был возможна ли фильтрация и сортировка lookup-полей в принципе. Сам с такой фигней столкнулся. Не сортируются они у меня, гады! Если что-нибудь полезное здесь найду - буду рад.
Andy Eremin (2003-02-10 13:36:00) [13]Основа такова:
есть две БД - материалы и модели с уникальными номерами Number.
Я хочу получить единую БД (для итога).
Если быть точным, то все намного запутаннее, однако принцип построения Query1 это Table1+Table2.
Соловьев (2003-02-10 13:27:00) [14]А че если:
Filter := NUMBER="3"Не работает?
filtered := true;
Соловьев (2003-02-10 13:25:00) [15]
> основная таблица Query1
Это как? Как она у тебя формируется?
Andy Eremin (2003-02-10 13:21:00) [16]Хорошо.
Вот такой пример:
Есть две таблицы Table1 & Table2 (материалы, модели) и основная таблица Query1. Все таблицы связаны полями Number. Необходимо производить фильтрацию Query1 по полю Query1.Name1=Table1.Name2+Table2.Name3.
Поля Name, Number - String
Соловьев (2003-02-10 13:12:00) [17]Это "рыба". Просто пример. Опиши структуру своих таблиц.
Andy Eremin (2003-02-10 13:09:00) [18]2 Соловьев
Что за поля f1, f2 и как записывается table2.lookup_field_name?
Приведите, пожалуйста, пример с нарицательными полями.
Соловьев (2003-02-10 12:49:00) [19]
+
order by lookup_field_name
Соловьев (2003-02-10 12:48:00) [20]
Select table1.f1, table2.f2, table2.lookup_field_name
from table1, table2
where table1.id_lookup=table2.id_lookup