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

Вниз

DevExpress - TcxDBLookupComboBox   Найти похожие ветки 

 
chirchik ©   (2004-07-23 15:59) [0]

DevExpress - TcxDBLookupComboBox
Помогите настроить правильную работу.

в списке надо вывести записи из одного простого запроса:
select Year from Table


 
Гость   (2004-07-23 18:08) [1]

в ListBox"е указываешь DataSource, ссылающийся на запрос;
в KeyField"е и ListField"е указываешь "year",
в DataSource и DataField указываешь нужные параметры...


 
chirchik ©   (2004-07-23 18:16) [2]

>в ListBox"е указываешь DataSource, ссылающийся на запрос;
dfm:

   object cxDBLookupComboBox1: TcxDBLookupComboBox
     Properties.KeyFieldNames = "Year"
     Properties.ListColumns = <
       item
         FieldName = "Year"
       end>
     Properties.ListSource = DM.DS1_Year
     TabOrder = 3
   end


Список выводится. Но при выборе записи курсор по данным не перемещается. Для слежки поставил рядом DBGrid. Что может быть?


 
chirchik ©   (2004-07-23 18:22) [3]

>в DataSource и DataField указываешь нужные параметры...
какие параметры? можно подробнее...


 
Гость   (2004-07-23 18:25) [4]

попробуй DBLookupEdit от DevExpress"a

   object eAngels: TdxDBLookupEdit
     Left = 8
     Top = 128
     Width = 305
     Style.BorderStyle = xbsFlat
     TabOrder = 2
     OnKeyPress = eAngelsKeyPress
     DataField = "Тип"
     DataSource = fDM.dsMarks
     DropDownRows = 10
     PopupBorder = pbFlat
     ListFieldName = "Название"
     KeyFieldName = "Код"
     ListSource = DM.dsAngels
     LookupKeyValue = Null
   end


 
Гость   (2004-07-23 18:27) [5]


> chirchik ©   (23.07.04 18:22) [3]
> >в DataSource и DataField указываешь нужные параметры...
> какие параметры? можно подробнее...

ну... в DataSource указываешь DataSet, в который вносишь данные, указанные в DBLookupComboBox, а в DataField имя поля, которое вносишь...


 
chirchik ©   (2004-07-23 18:33) [6]

При попытке сделать так:
   object cxDBLookupComboBox1: TcxDBLookupComboBox
     DataBinding.DataField = "Год"
     DataBinding.DataSource = DM.DS1_Year
     Properties.KeyFieldNames = "Год"
     Properties.ListColumns = <
       item
         FieldName = "Год"
       end>
     Properties.ListOptions.GridLines = glNone
     Properties.ListSource = DM.DS1_Year
   end


т.е. установить

     DataBinding.DataField = "Год"
     DataBinding.DataSource = DM.DS1_Year


выдается ошибка: "Circular datalinks are not allowed"

>попробуй DBLookupEdit от DevExpress"a
а с чем его ставить? у меня нет его :(
установлены ExpressQuantumGrid 4 и ExpressQuantumTreeList 4


 
chirchik ©   (2004-07-23 18:45) [7]

В этом то все и дело, что мне не нужно связывать таблицы.
у вас связываются dsMarks, dsAngels,

    DataField = "Тип"
    DataSource = fDM.dsMarks
    ListFieldName = "Название"
    KeyFieldName = "Код"
    ListSource = DM.dsAngels


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


 
chirchik ©   (2004-07-23 18:48) [8]

Обычный DBLookupComboBox работает нормально с такими свойствами:

   object DBLookupComboBox1: TDBLookupComboBox
     KeyField = "Год"
     ListSource = DM.DS1_Year
   end


Но там не работает прокрутка колесиком мыши, и стиль отличается от DevExpress"овских компонент.

Как же можно сделать выпадающий список?


 
Sir John ©   (2004-07-23 22:28) [9]

Надо использовать Properties -> View Впрочем, постараюсь объяснить все попорядку
1. Кидаем на форму cxGridViewRepository
2. В нем создаем новый вид - DBTable
3. в созданном виде прописываем в свойстве DataController - > DataSource
4. Создаем столбец
5. В нем прописываем в свойстве DataBinding - > FieldName
6. Закрываем cxGridViewRepository

Теперь немного отвлечемся, ибо сейчас начнется самое интересное. и эти действия требуют некоторых разъяснений. Во-первых парни из DevExpress для навигации по данным рекомендуют использовать вместо DataSource - View. Именно здесь находятся все элементы, которые мы видим при просморе данных, и которые можно выбирать по щечку мышки. Мы последуем их совету и поэтому:

7. В свойствах tcxLookUpComboBox выбираем Properties -> View. В ниспадающем списке должен появится только что созданный DBTable1View. Выбираем его
8. в ListFieldItem выбираем имя столбца, принадлежащего выбранному виду
9. В свойстве Properties -> KeyFieldItem выбираем имя поля, пренадлежащего выбранному столбцу
10. Теперь, нам необходимо проделать следующую операцию. После выборки данных из БД их необходимо "слить" в DataSource. Делается это таким образом:
tcxLookUpComboBox.DataBinding.DataField := tcxLookUpComboBox.Properties.ListFieldNames;
Теперь осталось дело за малым. Отобразить выбранное значение. Для этого
11. Выбираем закладочку Events -> onCloseUp, и в обработчике помещаем следующую строку
 tcxLookUpComboBox.EditValue := tcxLookUpComboBox.Properties.ListFieldItem.EditValue;

Ну и самое последнее.
12. После того как мы выполнили запрос и получили данные, нам необходимо отобразить первую запись из списка. Для осуществления этой светлой мечты достаточно всего одной строчки кода:
tcxLookUpComboBox.Properties.ListFieldItem.Index := 1;
Вот собственно и все. Теперь мы видим, как легко и приятно работать с навороченными компонентами от DevExpress :))))
--------------------------------------------------------
с уважением
Sir John


 
Гость   (2004-07-24 04:45) [10]


> chirchik ©   (23.07.04 18:45) [7]
> В этом то все и дело, что мне не нужно связывать таблицы.
> у вас связываются dsMarks, dsAngels,
>
>     DataField = "Тип"
>     DataSource = fDM.dsMarks
>     ListFieldName = "Название"
>     KeyFieldName = "Код"
>     ListSource = DM.dsAngels
>
> а уменя одна таблица, в которой уже хранятся года. мне ее
> не надо ни с чем связывать.

Просто в таблице dsMarks есть поле, которое задается выпадающим списком, значения для которого берутся из dsAngels


 
Yaral   (2004-07-24 11:49) [11]

Просто в событии onCloseUp делаешь locate и все.


 
chirchik ©   (2004-07-25 11:19) [12]

>Sir John [9]

Спасибо, огромное за столь подробное описание, но вот проблема:
>7. В свойствах tcxLookUpComboBox выбираем Properties -> View. В ниспадающем списке должен появится только что созданный DBTable1View. Выбираем его

В свойствах нет Properties -> View :(


 
chirchik ©   (2004-07-25 11:22) [13]

>Yaral [11]
>Просто в событии onCloseUp делаешь locate и все.

а подробнее можно?
cxDBLookupComboBox1.locate - не работает.


 
Sir John ©   (2004-07-25 23:17) [14]

есть tcxLookUpComboBox, и есть tcxDBLookUpComboBox
В первом случае нам надо создать просто tcxTableView
Во-втором - все точно по тексту



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

Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.04 c
3-1090962072
AlexG
2004-07-28 01:01
2004.08.22
Создание зависимых списков


1-1092038278
Goorus
2004-08-09 11:57
2004.08.22
Класс-контейнер


14-1091423855
Cobalt
2004-08-02 09:17
2004.08.22
FTP-сервер


1-1091711193
XXX
2004-08-05 17:06
2004.08.22
Диалог выбора директории


1-1091707980
Menel
2004-08-05 16:13
2004.08.22
Вопрос по окружностям и знакам...





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