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