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

Вниз

Помогите с подставными полями d DBGrid.   Найти похожие ветки 

 
Shatun   (2002-11-01 09:40) [0]

Мастера подскажите, как организовать сортировку в DBGrid.
Существуют три таблицы
"Вид товара" (код, вид)
"Товар" (код,Код вида, наименование)
"Прайс" (Код, Код товара, количество и т.д.)
Так вот, как сделать чтоб подставное поле "товар" в таблице "Прайс" ограничивалось выбранным видом товара, и все выбералось в DBGrid


 
Johnmen ©   (2002-11-01 10:07) [1]

Я не понял, причем здесь сортировка...

>...как сделать чтоб подставное поле...

Ставь фильтр на нужный код вида товара в НД "товар"...


 
Shatun   (2002-11-01 10:56) [2]

Если делаешь фильтр, или соеденяешь таблицы "Вид товара" с "Товар", а "Товар" соответственно с "Прайс", то подставное поле может не отражаться если выбрать другой вид товара.


 
Johnmen ©   (2002-11-01 11:02) [3]

Это значит, что не всключено кеширование лукап поля...


 
Shatun   (2002-11-01 11:46) [4]

А не подскажешь где включить кеширование лукап поля.
Извени за тупой вопрос, но я новичек.


 
Shatun   (2002-11-01 11:51) [5]

А лучше раскажи поподробней.


 
Johnmen ©   (2002-11-01 11:54) [6]

свойство лукапного поля LookupCache


 
Shatun   (2002-11-01 13:02) [7]

Что то у меня не получается, если не влом вышли примерчик на мыло. А то я себя идиотом чувствую, нутром понимаю что это как то должно делаться, а третий день бьюсь, и нифига не выходит


 
Johnmen ©   (2002-11-01 13:21) [8]

Пример здесь не поможет ничем...Общее направление :
1. Сбрасываешь все фильтры на свои НД "Вид товара", "Товар" (или рвешь связи Мастер-Детейл), короче на все, на которые есть лукап поля
2. Получаешь НД "Прайс"
3. Восстанавливаешь фильтры (связи)
PS Не забываешь, что свойство LookupCache=True


 
ЮЮ ©   (2002-11-01 13:31) [9]

Напрасно доверяешь нутру :-) Чтобы лукап поля правильно рисовались во всём гриде LookupDataset должен содержать все необходимые записи.
В гриде посредством родного лукапа ты нужного эффекта не добьёшься.


 
Johnmen ©   (2002-11-01 13:46) [10]

>ЮЮ © (01.11.02 13:31)
>Чтобы лукап поля правильно рисовались во всём гриде
>LookupDataset должен содержать все необходимые записи.

Однозначно, это не так...:)



 
ЮЮ ©   (2002-11-01 13:55) [11]

Согласен! Прочитал про LookupCache. Никогда в жизни не ставил его в True :-)


 
ЮЮ ©   (2002-11-01 13:57) [12]

Да, но если LookupCache=true, то фильтрация LookupDataset ничего не даст. Поэтому после фильтра прёдется его отключить. Но тогда в кэше будут только отфильтрованные записи. И?


 
Johnmen ©   (2002-11-01 14:12) [13]

>ЮЮ © (01.11.02 13:57)

Нет. В момент открытия ведущего НД на все доступные с учетом фильтра (его нет) значения записей лукапного поля лукапного НД строится кеш. И если теперь поставить фильтр на лукапный НД и ведущий не сможет найти соответств.запись в л.НД, то будет взята запись из кеша.
Что, впрочем, как ты заметил, написано в хелпе...:)


 
ЮЮ ©   (2002-11-02 05:09) [14]

>И если теперь поставить фильтр на лукапный НД и ведущий не сможет найти соответств.запись в л.НД, то будет взята запись из кеша.

Если стоит LookupCache=true то ведущий НД вообще не будет обращаться к л.НД, а всё будет брать из кэща, обновление которого теперь перекладывается на приложение (так написано в Helpe). Правда я не знаю, что будет отображаться в выпадающем списке, отфильтрованный л.НД или значения из кэща. Повторюсь, что никогда не пользовался LookupCache.



 
Shatun   (2002-11-04 05:48) [15]

Блин ребята, я тупой ламер. Из вашего базара понял только то что нужно использовать LookupCache, а как и почем непонятно. Будьте добры киньте пример мне на мыло.


 
Виталий Панасенко   (2002-11-04 08:44) [16]

Я, конечно, извиняюсь, но если Вы используете вид товара (группу), то она Вам необходима, что бы отфильтровать ТОЛЬКО этот вид/группу. Та накой Вам все остальное ?!. При выборе другого вида просто перестроить фильтр и в прайсе показывать уже другой вид... Или я что-то недопонял ?


 
Shatun   (2002-11-04 10:26) [17]

Да чтоб в третей таблице все увидеть, раз и во вторых чтоб в ней же и редактировать.


 
MsGuns ©   (2002-11-04 12:42) [18]

Хотел уйти за свой, но все-таки вистану.
Или я чего-то не понял, или тут базар съехал куда-то ни туда. Причем здесь вообще LookUp - поля ? По-моему тут уместна перевязка:

1. Группа > товар (один ко многим)
2. Товар > прайс (один к одному)

Организация контролов:

- Вариант с "родными" НД

В контрол-панели ComboBox с группами
В гриде список товара
В панельке внизу инфа прайса по текущей в гриде позиции товара

- Вариант с объединяющим SQL
В контрол-панели ComboBox с группами
В гриде список товара + инфа из прайса (выборка из 2-х НД)

Выборка групп понятно как (через SQL или фильтром)
Сортировка внутри грида, поиск, внутренняя фильтрация - все стандартно ! Причем тут лукап ?


 
alexr ©   (2002-11-04 12:57) [19]

Как я понял, ты работаешь с таблицами Paradox, а для отобржения данных и их корректировки используешь компонент TTable.
Если это так, то тебе необходимо включить связи между компонентами TTable.Смотри свойства MasterSourse и MasterFielfs.
Всвойстве MasterSourse выбери таблицу для связи "один ко многим", а затем щелкни по полю свойства MasterFielfs и укажи поля по которым осуществляется связь.

В твоей задачке связи таблицы "Вид товара" (код, вид)
к таблице "Товар" (код,Код вида, наименование)
к таблице "Прайс" (Код, Код товара, количество и т.д.)

В этом случае если у тебя на форме используются три таблицы Grid, в таблице "Вид товара" будет отражаться одно значение, в таблице "Товар" - несколько наименований товара, а в таблице "Прайс" - их параметры.



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

Текущий архив: 2002.11.21;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.018 c
1-69340
Новенький в Делфи
2002-11-12 19:52
2002.11.21
StringList1.LoadFromStream(MemoryStream1) - проблема


3-69132
amik
2002-10-31 09:25
2002.11.21
Получение данных из blob-поля типа Memo


14-69545
TTCustomDelphiMaster
2002-11-01 18:10
2002.11.21
Безопасный код :)


4-69628
TankMan
2002-10-08 04:37
2002.11.21
Выключение компа но не простое.....:)


3-69214
Дмитрий
2002-10-30 08:00
2002.11.21
Blob-поле