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

Вниз

Обновление информации в RXLookupCombo   Найти похожие ветки 

 
Vladimir Bolotin   (2003-07-16 20:59) [0]

Использую компонент RXLookupCombo из библиотеки RxLib для выбора значения из справочника. В свойствах Lookup* делаю ссылку на соответствующий DataSet и поля. DataSource у меня пустой, т.к. выбранное значение справочника беру напрямую из текущей записи DataSet"a.

Вопрос: как сделать, чтобы при открытии формы редактирования RXLookupCombo отображал желаемую запись из справочника? У меня он постоянно "сброшен".


 
Johnmen   (2003-07-16 21:45) [1]

В обязательном порядке прописать DataSource и DataField.
Иначе, скорее всего, компонент используется не по "назначению".
Принудительно выставить значение - KeyValue:=<<значение ключа>>


 
Vladimir Bolotin   (2003-07-22 21:53) [2]

что писать в DataSource и DataField?

RXLookupCombo используется для выбора значения из справочника и передачи его в TQuery вкачестве параметра запроса.

Насколько я знаю такой способ передачи параметров (через DataSource/DataField) отсутствует..


 
ЮЮ   (2003-07-23 03:01) [3]

В этом случаае (22.07.03 21:53) их и впрямь можно не заполнять. К такому совету привели твои расплывчаты фразы, типа "выбранное значение справочника беру напрямую из текущей записи DataSet", хотя в таком варианте правильнее использовать RXLookupCombo.Value/KeyValue и, соответственно, чтобы в нём уже стояла какая-нибудь строка из справочника надо задать RXLookupCombo.Value/KeyValue/DisplayValue.

С другой стороны, "как сделать, чтобы при открытии формы редактирования RXLookupCombo отображал желаемую запись из справочника? ". А желаемая запись никак не связана с редактируемой строкой?



 
Vladimir Bolotin   (2003-07-24 00:08) [4]

"С другой стороны, "как сделать, чтобы при открытии формы редактирования RXLookupCombo отображал желаемую запись из справочника? ". А желаемая запись никак не связана с редактируемой строкой?"

Связана. Редактируемая строка содержит код, описание которого (из справочника) и долно отображаться в RXLookupCombo. Изменение текущей записи в справочнике ни к чему почему-то не приводит.. :\\


 
ЮЮ   (2003-07-24 02:46) [5]

Блин, нельзя же так противоречиво об одном и том же! :-)
Если это редактируется/отображается поле записи, то DataSet b DataField, естественно, необходимо заполнить соответственно


 
Vladimir Bolotin   (2003-08-03 23:01) [6]

так система клиент-сервер..
в DataField-то нечего указывать.. все обновления ведуться через TQuery.


 
stud   (2003-08-04 09:22) [7]

так TQuery после открытия возвращает набор данных с именами полей. вот их и используй


 
Vladimir Bolotin   (2003-08-05 20:44) [8]

Ребята.. :-)
Вероятно все уже запутались в чем проблема. Где эти поля использовать? :-)
Объясню попроще.

Есть набор данных, полученный через TQuery (содержащий два поля справочника: code, name). Есть компонент RXLookupCombo где в LookupDataSet указан этот самый TQuery, а в LookupField некоторое поле, например name.

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



 
Vovchik_A   (2003-08-05 21:30) [9]

Ну может тебе OnChange или OnDataChange надо обработать ? Подумай...


 
Vladimir Bolotin   (2003-08-05 22:17) [10]

К сожалению эти события не помогут.. =(
Дело не в этом..

Эх.. ну неужели никто не делал форуму редактирования записи с выбором значения из справочника в клиент/серверной системе? Это же основы..

Расскажите просто как у вас сделано, что в каких свойствах..


 
HSolo   (2003-08-06 09:55) [11]

Делали, конечно :)

Вариант 1 - вообще без lookup-а. По нажатию кнопки / hotkey вызывается форма для работы со справочником. С добавлением / коррекцией, с поиском, сортировкой и прочими наворотами. У этой формы есть свойство RecordChosen для ID выбранной записи. Выбор записи - кнопка ОК / hotkey / DoubleClick, по вкусу; обработчик выглядит примерно так:

RecordChosen := SpravochnikDataSet.FieldByName("RecordID").AsInteger;
ModalResult := mrOK;

Код вызова примерно такой:
with TfSpravochnik.Create(nil) do
try
if ShowModal = mrOK then
<Ваш-параметр> := RecordChosen;
finally
Free;
( если все же хочется lookup) Делали, конечно :)

Вариант 1 - вообще без lookup-а. По нажатию кнопки / hotkey вызывается форма для работы со справочником. С добавлением / коррекцией, с поиском, сортировкой и прочими наворотами. У этой формы есть свойство RecordChosen для ID выбранной записи. Выбор записи - кнопка ОК / hotkey / DoubleClick, по вкусу; обработчик выглядит примерно так:

RecordChosen := SpravochnikDataSet.FieldByName("RecordID").AsInteger;
ModalResult := mrOK;

Код вызова примерно такой:
with TfSpravochnik.Create(nil) do
try
if ShowModal = mrOK then
<Ваш-параметр> := RecordChosen;
finally
Free;
end;

Вариант 2 (если все же хочется lookup): киньте на форму RxMemoryData, сотворите там поле для ID выбираемой записи, прицепите к DataSource, и в DataSource / DataField укажите этот самый DataSource и это самое поле. Перед открытием Вашего TQuery сделайте:

with MemoryData do begin
Open;
Append;
end;

И теперь в MemoryData.то-самое-поле будет сидеть ID выбраной записи.


 
Eduard Karabovich   (2003-08-07 01:44) [12]

Я делал следующим образом - в DataSet создавал LookUp поле (field), где указывал - LookupDataset (справочник), LookupKeyField (Id в текущем DS)LookupResultField (Name результирующее поле из справочника). В LookupCombo - ListSource (справочник) FieldName (имя созданного лукап поля). Все работает - в текущем датасете меняется ID или код при выборе другого значения в лукапе и высвечивается в других записях наименование из справочника нужное, и в гриде можно использовать (в DBGridEh тоже появляется лукап на нужном поле). База - FB-1



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

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

Наверх





Память: 0.48 MB
Время: 0.012 c
3-1284
Zorik
2003-08-11 09:16
2003.09.01
Табличные даные в Interbase


4-1732
DelphiN!
2003-06-30 07:58
2003.09.01
Как сохранить позицию Scrollbar-а?


7-1691
revo
2003-06-17 14:53
2003.09.01
ISA + NT


4-1703
Davinchi
2003-07-03 17:33
2003.09.01
Работа с Word документами


3-1316
gsvserg
2003-08-07 18:49
2003.09.01
Как сделать цикл по колонкам в Excel?





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