Форум: "Базы";
Текущий архив: 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, и есть tcx
DB
LookUpComboBox
В первом случае нам надо создать просто tcxTableView
Во-втором - все точно по тексту
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.034 c