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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.056 c
1-1091783381
msgipss
2004-08-06 13:09
2004.08.22
dcu в pas


3-1090926478
TAN_K
2004-07-27 15:07
2004.08.22
Поле типа Date = 0


9-1083521532
Ландграф Павел
2004-05-02 22:12
2004.08.22
управление человеком как в GTA2


1-1091560738
g-l-u-k
2004-08-03 23:18
2004.08.22
Как определить каким пакером сжат файл или язык программирования?


14-1091785039
Cerberus
2004-08-06 13:37
2004.08.22
Текстовые фаилы