Форум: "Базы";
Текущий архив: 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