Главная страница
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.012 c
3-10086
axelrodm
2003-07-13 11:19
2003.08.04
Security INTERBASE


3-10110
viktor
2003-07-14 15:55
2003.08.04
как обновить связи присоединенных таблиц ?


7-10473
Siemens
2003-05-22 12:54
2003.08.04
Как использовать MODEM или локалку в DELPHI!


1-10244
DimaB
2003-07-21 05:34
2003.08.04
Контрольная сумма


1-10223
Феликс
2003-07-21 00:23
2003.08.04
Как открыть окно состоящее только из заголовка.