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

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.057 c
3-1174007915
DimonS
2007-03-16 04:18
2007.06.03
FastReport & Excel, Word, конвертация...


2-1179243745
BFG9k
2007-05-15 19:42
2007.06.03
Как по имени запущенной прог. получить Handle ее главного окна ?


1-1175780961
rvg666
2007-04-05 17:49
2007.06.03
Как с помощью потока создать компоненты


3-1172300426
impuls
2007-02-24 10:00
2007.06.03
как подружить Mysql v 5.0.24 и Delphi7


15-1178529482
lu4ina
2007-05-07 13:18
2007.06.03
TreeView





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