Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Вниз

Фильтр и индекс по Lookup полю   Найти похожие ветки 

 
OlkaGTS   (2003-07-11 14:07) [0]

Уважаемые мастера!
Есть ли какой-нибудь способ фильтровать и индексировать Lookup поля?
Пробовала сделать поле типа InternalCalc и вычислять его по другой таблицы, но в этом случае получается примерно следующее:
если я исправляю значения в таблице из которой я беру значения для вычисляемого поля, то само вычисляемое поле содержит правильные данные, но фильтр и индекс строится по старым значениям.


 
DenK_vrtz   (2003-07-11 14:20) [1]

Может быть фильтр наложить на НД, на который идет ссылка Lookup поля?
Или ты не про то?


 
Zacho   (2003-07-11 14:21) [2]

Какой еще индекс ? Нет в клиентском приложении никаких индексов. А на сервере нет lookup полей.
Напиши более конкретно, что именно тебе надо.


 
OlkaGTS   (2003-07-11 14:33) [3]

Конкретно:
Есть клиентский набор 1:
Запчасти
IDЗП ЗП IDПроизводителя
Клиентский набор 2
IDПроизводителя Производитель
В гриде надо видеть, редактировать, фильтровать, упорядочивать:
ЗП Производитель


 
Pat   (2003-07-11 15:09) [4]

>Есть ли какой-нибудь способ фильтровать...
OnFilterRecord либо см. далее..

>...и индексировать...(насколько я понял, нужно упорядочение записей)
Запрос с Join"ом


 
Жук   (2003-07-11 15:33) [5]


> OlkaGTS © (11.07.03 14:33)

Не надо перегружать работой клиента, а организация Lookup-полей в гриде приводит к большей ресурсоёмкости. Нужно, по возможности, делать все вычисления на сервере, раз вы ИБ пользуютесь. Просто правильно составьте запрос для DataSet. У вас здесь стандартное отношение "мастер-детал".


 
OlkaGTS   (2003-07-11 15:51) [6]

Запрос не подходит. Все надо делать на клиенте из-за того что надо использовать модель "портфеля"


 
Жук   (2003-07-11 15:55) [7]


> OlkaGTS © (11.07.03 15:51)
> надо использовать модель "портфеля"

Это что за зверь ? :-)


 
Соловьев   (2003-07-11 16:08) [8]


> Запрос не подходит. Все надо делать на клиенте из-за того
> что надо использовать модель "портфеля"

MIDAS?
procedure TForm.DBGrid.TitleClick(Column: TColumn)
begin
ClientDataSet.IndexFieldNames := Column.Name;
end;


 
OlkaGTS   (2003-07-11 16:13) [9]

Это когда все, что есть в клиентских наборах сохраняется в файлы на локальном диске и все время можно работать без коннекта к базе. А потом когда заведется коннект, можно все сохранить.


 
OlkaGTS   (2003-07-11 16:23) [10]

Lookup поле в IndexFieldNames подставить невозможно. Если же сделать поле InternalCalc, то и индекс и фильтр ведет себя неадекватно. Все, что добавлено в текущем сеансе программы на фильтр никак не действует, т.е. в гриде отображается нормальное значение вычисляемого поля, а в OnFilterRecord значение вычисляемого поля такое, как было, когда программу запускали


 
VAleksey   (2003-07-11 17:52) [11]

Хоть это и неправильно, НО в таком случае тебе надо в таблице завести еще одно поле - дубль значений из LookUp поля. Обновлять его будешь при каждом изменении таблицы значением из лукап поля. Соответственно и индекс и фильтры по нему можешь делать.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
3-10139
AndDem
2003-07-15 08:12
2003.08.04
Коннект к листу Excel из Delphi


3-10145
Avreliy
2003-07-14 18:37
2003.08.04
Rave Reports.


14-10415
aga
2003-07-05 13:18
2003.08.04
Игрокам...


4-10493
Mr. API
2003-05-26 21:28
2003.08.04
Окно копирует фон в WinXP.


14-10372
Beginner3000
2003-07-16 00:26
2003.08.04
---|Ветка была без названия|---





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