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

Вниз

Помогите с подставными полями 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.009 c
1-69428
Shrek
2002-11-11 12:33
2002.11.21
DBCtrlGrid


14-69505
Forever
2002-10-01 18:25
2002.11.21
Как убрать


1-69289
Seldon
2002-11-11 21:43
2002.11.21
RichEdit


1-69412
V-A-V
2002-11-11 09:35
2002.11.21
Как перевести пиксели в миллиметры или наоборот


6-69483
TCrash
2002-09-25 15:33
2002.11.21
Спецификация POP3





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