Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.04;
Скачать: CL | DM;

Вниз

Фильтр и индекс по 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
6-10320
tv
2003-05-28 16:23
2003.08.04
Вопрос о печати из TWebBrowser


3-10094
Fast
2003-07-12 21:44
2003.08.04
ADOTable.Delete


14-10350
Amid
2003-07-18 11:13
2003.08.04
Как зделать прогу типа WinRoute, WinGate


14-10349
Aga
2003-07-16 18:57
2003.08.04
Перенос программ


14-10358
shark
2003-07-17 21:01
2003.08.04
online RPG