Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

статические поля [D6, Paradox]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо