![]() |
|
|
![]()
|
|
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Помогите, пожалуйста, новичку!
Хочу записать код руководителя из таблицы руководителей (Ruk) в таблицу подразделений (Pod), на форме вставки записи - DBLookupComboBox, где значения должностей из таблицы Ruk. Так вот, делаю следующее DM.Pod['PKodRuk'] := DBLookupComboBox1.KeyValue; и в таблице Pod появляются записи по всем кодам руководителей, а не только по выбранному... Как сделать правильно? |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Все равно - записей столько, сколько значений у DBLookupComoBox
|
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
ничего не понял...
зачем вообще руками что-то указывать? у тебя TDbLookupComboBox есть. настрой в нём LookupField, KeyField, ResultField и т.д. и у тебя всё будет писаться само без всяких присвоений. А если ты пишешь руами - то зачем тебе вообще LookupCombo? -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Настроил правильно ListSource, ListField, KeyField, а в результате все так же прописываются в таблице записи, вместо того, чтобы появлялась одна.
|
|||
|
||||
| jonik_Dk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 18.2.2004 Репутация: нет Всего: 1 |
Можешь по другому :
Создай в Таблице Podr Lookup-поле (Редактор полей), которое будет ссылаться на таблицу Ruk. И в DBLookupComboBox просто пропишешь это аоле в свойстве FieldName, больше ничего настраивать не прийдется. Но, в принципе если правильно настроил свойства ListSource, ListField, KeyField должно работать. |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Настраивать св-ва ListSource, ListField, KeyField, не совсем удобно, для этого курсор в таблице должен стоять на добавленной или редактируемой строке. И не будет отката назад.
А мой пример не может не работать. Убери из компонента связи, оставь заполнеными только св-ва KeyField и ListField , убедись, что у тебя открыта таблица и что использованны комманды Append, Insert или Edit. И, что у тебя присваивании происходит не в цикле. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Оставляю свойства KeyField и ListField, все равно результат тот же...
|
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
С подстановочным полем тоже ничего не выходит.
|
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
привиди весь код процедуры, где у тя происходит присвоение
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
procedure TForm6.Button1Click(Sender: TObject);
begin DM.Pod.Append; DM.Pod['PKod'] := Edit1.Text; DM.Pod['PPod'] := Edit2.Text; А тут разные варианты, которые использовал: //DM.Pod.FieldByName('PKodRuk').AsString := DBLookupComboBox1.KeyValue; //DM.Pod['PKodRuk'] := DBLookupComboBox1.KeyValue; А вот после такого выходит ошибка (Circular data links are not allowed): //DBLookupComboBox1.DataSource := DM.DataSource2; //DBLookupComboBox1.DataField := 'PKod_Ruk'; //DBLookupComboBox1.ListSource := DM.DataSource1; //DBLookupComboBox1.ListField := 'RDolj'; //DBLookupComboBox1.KeyField := 'RKod'; DM.Pod.Post; DM.Pod_Adm.Active := False; DM.Pod_Adm.Active := True; Close; end; |
|||
|
||||
| Cashey |
|
||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Обрати внимание! Я же сказал не KeyValue, а
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||
|
|||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Все равно идет запись по всем руководителям...
|
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Фигня это все. Так не бывает, что-то зевнул
Значит так: убиваешь все, что у тя есть в св-вах DBLookupComboBox1: DataField, DataSource, ImeName. В св-вах DBLookupComboBox1.ListSource пишишь Source справочника, св-ва ListField и KeyField дублируешь именим поля справочника ('RDolj') И дальше пишишь код:
Имей ввиду, что Edit должны соответствовать порядковому номеру фактического поля в таблице, если у тебя первое поле типа AutoIncrement, то тогда первым параметром поставь nil -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
'Pod: Dataset not in edit or insert mode' - такая фигня вылазит при запуске...
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |