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

Вниз

Проблема с DBLookUpComboBox ом   Найти похожие ветки 

 
Ki   (2007-05-09 05:41) [0]

у меня маленькая проблемка большого характера. дело в том что для отображения из базы нужной мне информациия пользуюсь DBLookUpComboBox"ом т.е. он отображает мне не идентификатор из главной таблицы, а соответствующую запись из справочника. вся сложность заключается в том что в базе данные есть и при запросе их все данные находятся, но когда начинаешь просматривать данные, то DBLookUpComboBox их не показывает или показывает только то что ему хочется. как сделать так чтоб все отображалось?


 
Johnmen ©   (2007-05-09 11:16) [1]


> то DBLookUpComboBox их не показывает или показывает только
> то что ему хочется.

А что ему хочется?
Неплохо бы здесь почитать http://ln.com.ua/~openxs/articles/smart-questions-ru.html


 
Ki   (2007-05-10 05:39) [2]

Бывает и не показывает, бывает и показывает то что ему угодно, а не мне. Я думаю, что это еще и от того что у меня несколько справочников. Потому что когда ссылается на единственный справочник( например "причина"), то все работает не подкопаешься, а например если создать несколько стправочников т.е. чтоб он сперва делил ну допустим на съедобное и не съедобное а после на грибы овощи или фрукты (надеюсь пример понятный) то вот тут он и поступает как ему хочется. я не знаю что делать. буду очень благодарна если подскажите какие-нибудь умные мысли.... за ранее благодарна.


 
Johnmen ©   (2007-05-10 09:28) [3]


> а после на грибы ... (надеюсь пример понятный)

Да-да-да! С грибами пример понятный!


 
Плохиш ©   (2007-05-10 11:02) [4]


> буду очень благодарна если подскажите какие-нибудь умные
> мысли

1. Читать вдумчиво книжки.
или
2. Kinder, Küche, Kirche


 
Kostafey ©   (2007-05-10 11:16) [5]

> он отображает мне не идентификатор из главной таблицы, а
> соответствующую запись из справочника

А что ожидалось наоборот? Тогда DBEdit


> DBLookUpComboBox их не показывает или показывает только
> то что ему хочется. как сделать так чтоб все отображалось?

Правильно насторить свойства  DBLookUpComboBox. Или проблема как раз в этом?


> Я думаю, что это еще и от того что у меня несколько справочников

1 DBLookUpComboBox работает с 1 справочником.
Нужны данные из 2- х справочников подключаем 2-й DBLookUpComboBox


> > а после на грибы ... (надеюсь пример понятный)
>
> Да-да-да! С грибами пример понятный!

Вот про грибы как раз ничего не понятно ;)
Короче, структуру БД в студию !


 
Johnmen ©   (2007-05-10 11:19) [6]


> Вот про грибы как раз ничего не понятно ;)

Это потому, что ты их ещё не курил...:)))


 
Kostafey ©   (2007-05-10 11:22) [7]

> Это потому, что ты их ещё не курил...:)))

А их курят ??? :))
Все перекурил, все перепробовал а вот грибы не доводилось ;)


 
Правильный Вася   (2007-05-10 12:48) [8]


> А их курят ??? :))

их только курят, остальное - ребячество


 
Ki   (2007-05-13 07:22) [9]

мда! мне помимо грибов на ум приходят только ягоды :) (что то фантазия пропала совсем) , то о чем делаю я свою бд вам придется очень долго объяснять и наверное все равно не получится. так что  попробую на ягадах (их не курят кажется) более понятно. сперва идет справочник в котором данные съедобные или не съедобные. потом справочник в котором идут название ягод и также связь со справочником со съедобными или нет. потом справочник о том где растет (лес поле огород или еще где). вот когда в одном DBLookUpComboBox выбираешь съедобные он во втором выдает список только съедобных. после выбора названия во 2 в 3 DBLookUpComboBox он выдает список только тех мест где растут эти ягоды а не всех указаных мест в справочнике. вот трудность вся в том что когда создашь несколько записей при их просмотре в DBLookUpComboBox отображается или то что хочется самому DBLookUpComboBox или просто показывает его пустым. хотя все данные в базе хранятся и при запросе выдаются без проблем. возможно даже проблема не столько с DBLookUpComboBox сколько в таблицах на которые они обращаются но я не могу понять поэтому обращаюсь к вам. помогите.


 
ASoft   (2007-05-13 08:11) [10]

какой-то AI этот ваш DBLookUpComboBox !
наверное, ягоды тоже курят :-)


 
Kostafey ©   (2007-05-13 15:01) [11]

> мне помимо грибов на ум приходят только ягоды :)

Да ты и на счет ягод не переживай. На Delphimaster курят все курят. Даже справку и ту курят :))


> так что  попробую на ягадах (их не курят кажется) более
> понятно. сперва идет справочник в котором данные съедобные
> или не съедобные

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

TableGrib - таблица грибов
 id
 Name - название
 FK:Sedobniy_id - поле связи с таблицей съдобности

TebleSedobniy - таблица съедобности
 id
 Eda - съедобен/несъедобен

и т.д. и. т.п. понимяу ?

> в одном DBLookUpComboBox выбираешь съедобные он во втором
> выдает список только съедобных

То же самое:

DBLookUpComboBoxEda.DataSource:=
DBLookUpComboBoxEda.DataField:=
DBLookUpComboBoxEda.ListSource:=
DBLookUpComboBoxEda.ListField:=

DBLookUpComboBoxGribName...

и т.д. в том же духе


> при их просмотре в DBLookUpComboBox отображается или то
> что хочется самому DBLookUpComboBox

Такие вещи в разделе Прочее обсуждаются.
В этом разделе нужно более разумно формулировать.

Все, давай постарайся вопрос правильно сформулировать.


 
Ki   (2007-05-15 05:34) [12]

Kostafey ©!!

> Такие вещи в разделе Прочее обсуждаются.
> В этом разделе нужно более разумно формулировать.

я пытаюсь разумно но я же на форуме для новичков... пришлось мне учить делфи выбора не было... очень надо....


> Все, давай постарайся вопрос правильно сформулировать.

Стараюсь....
TableMesto - таблица места обитания грибов
id
Name - название
FK:Grib_id - поле связи с таблицей грибов

TableGrib - таблица грибов
id
Name - название
FK:Sedobniy_id - поле связи с таблицей съдобности

TebleSedobniy - таблица съедобности
id
Eda - съедобен/несъедобен

для первого  DBLookUpComboBox (в котором выбираем съедобен гриб или нет):

DBLookUpComboBoxEda.DataSource:=DataSource1 (который связан с главной таблицей пусть будет она называтся "Z". тогда в ней будут такие поля:
                                            Sedobniy_id ; Grib_id;  Mesto_id; )
DBLookUpComboBoxEda.DataField:=Sedobniy_id
DBLookUpComboBoxEda.ListSource:=DataSource2 (который связан с таблицей еда)
DBLookUpComboBoxEda.ListField:= Eda
DBLookUpComboBoxEda.KeyField:= id

для второго   DBLookUpComboBox ( в котором выбираем название гриба, он должен выдавать не весь список а только те записи которые съедобны/или нет (грибы а не записи :))

DBLookUpComboBoxGrib.DataSource:=DataSource1
DBLookUpComboBoxGrib.DataField:=Grib_id
DBLookUpComboBoxGrib.ListSource:=DataSource3 (который связан с таблицей Grib)
DBLookUpComboBoxGrib.ListField:= Name
DBLookUpComboBoxGrib.KeyField:= id

для третьего DBLookUpComboBox ( в котором выбираем место обитание гриба, тут записи еще раз делятся)

DBLookUpComboBoxMesto.DataSource:=DataSource1
DBLookUpComboBoxMesto.DataField:=Mesto_id
DBLookUpComboBoxMesto.ListSource:=DataSource4 (который связан с таблицей Mesto)
DBLookUpComboBoxMesto.ListField:= Name
DBLookUpComboBoxMesto.KeyField:= id

поле того как все это выбирешь и сделаешь при этом несколько записей при помощи навигатора начинаю просматривать все записи и тут DBLookUpComboBox отвечающий за место и за грибы будут либо отставатся пустыми либо будут показывать не те данные которые я выбирала.... хотя при просмотре самих даных с помощью Grid у меня записи все нормальные.

может свойство какое надо.... я уже все вроде перепробовала..


 
ЮЮ ©   (2007-05-15 09:03) [13]

TableMesto - таблица места обитания грибов
FK:Grib_id - поле связи с таблицей грибов


зачем здесь свяь с таблицей грибов? Гнужели в одной местности не растет более одного вида грибов?
Для этой связи и существует главная таблица Z, которая и связывает места обитания и сами грибы, указывая их съёдобность/несъедобность.
Типа в Подмосковье мухоморы съедобны, а на Дальнем Востоке - нет :)

Поэтому для заполнения данной таблицы не понятно зачем накладывать какие либо ограничения.


 
Desdechado ©   (2007-05-15 10:52) [14]

По-моему, ты что-то не то делаешь. Если ты задаешь способы фильтрации (отбора) своих грибов, то для выбора признаков нужно использовать не главный набор данных, а дополнительные. А вот в главном на нужные поля уже накладывай фильтр из выбранных значений. Это можно сделать или SQL (тогда нужно переоткрывать запрос, конструируя его налету с условиями WHERE), или в свойстве Filter.
В главном датасете достаточно сделать лукапные поля без боксов.


 
Anatoly Podgoretsky ©   (2007-05-15 23:19) [15]

> ЮЮ  (15.05.2007 09:03:13)  [13]

> Типа в Подмосковье мухоморы съедобны, а на Дальнем Востоке - нет :)

Вообще то так и есть, а отсюда нужен признак проживания грибов.


 
Merry   (2007-05-16 06:18) [16]

Просто нужно ту таблицу, записи которой открываются в DBLookUpComboBox после открытия этой таблицы отправить на последнюю запись. Т.е.
Table1.Open;
Table1.Last;
тогда при обращении в какой-то момент в DBLookUpComboBox, там появятся все записи этой таблицы.


 
ЮЮ ©   (2007-05-16 06:37) [17]

DBLookUpComboBoxEda.DataField:=Sedobniy_id
DBLookUpComboBoxEda.ListSource:=DataSource2

DBLookUpComboBoxGrib.DataSource:=DataSource1
DBLookUpComboBoxGrib.DataField:=Grib_id

DBLookUpComboBoxMesto.DataSource:=DataSource1
DBLookUpComboBoxMesto.DataField:=Mesto_id

 Т.к. эти поля заполнены, то этими компонентами ты редактируюшь таблицу Z и тут никакие ограничения не нужны, ибо в любой месте может оказаться любой гриб в любой ипостаси. Зачем ограничиваться только имеющимися в Z связями, если при заполнении Z эти связи и строятся?

 Если же ты хочешь с помощью этих компонентов отбирать из Z записи, удовлетворяющие условиям в этих ComboBox-ах, то ListSource и DataField должны быть пусты. А условия поиска(фильтра) строить динамически (см.[14])



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

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

Наверх




Память: 0.52 MB
Время: 0.034 c
15-1178614834
Juice
2007-05-08 13:00
2007.06.03
QunatumGrid


2-1179294807
Krot
2007-05-16 09:53
2007.06.03
запуск своей программы с ключом


15-1178458451
Kostafey
2007-05-06 17:34
2007.06.03
Использование переменной-счетчика цикла после выхода из оного


15-1178796898
Gero
2007-05-10 15:34
2007.06.03
Персональная ветка ArtemESC


2-1178941012
Iv_
2007-05-12 07:36
2007.06.03
Цветная бегущая строка