powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление значений через DBLookup
25 сообщений из 31, страница 1 из 2
Добавление значений через DBLookup
    #32130572
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перехожу на Delphi из Access'а, и вот встала такая проблема:

В аксесе я использовал поля со списком для ввода данных, если пользователь вводит значение, которого нет в этом списке, то я перехватывая собитие NotInList либо добавляю новые данные в рекордсет, либо запрещаю.

А в делфях взял DBLookupComboBox и чаго то не вижу тут нужных свойств и событий для добавления новых значений. Подскажите - может не там ищу?
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32130612
Игорёха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо искать чуть левее, а точнее DBEdit. А DBLookupComboBox ипользуется в большенстве случеав для заполнения подстановочных значений из справочников или просто отображения значений из таблиц в виде списка.
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32130624
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBLookupComboBox из ehLib помоему позволяет вводить значения
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32130680
Sergey_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а поподробнее можно про: DBLookupComboBox из ehLib помоему позволяет вводить значения. Что это за ehLib?
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32130863
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что нужно то? СМтранно ты данные добавляешь... Откуда вообще список берешь?
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32131014
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.farpost.com/personal/dmitryb/RUS/default.htm][ehLibl]
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32131034
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Mind

DBLookupComboBox используют для заполнения данных из справочника. Причем показывают пользователю, допустим, наименование ЕИ, а в набор прописывают ее код. Естественно, что список заполняется на основании набора данных, получаемых запросом или хп с сервера. Так что, чтоб новая запись попала в список, ее сначала надо занести в справочник на сервере, и тока потом юзать. Для ведения справочников обычно делают отдельные формы или целые модули, как у меня.
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32131122
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а примерчик можно посмотреть?
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32131158
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>а примерчик можно посмотреть?

Примерчик чего. Набора для DBLookupComboBox, формы для ведения справочника, целого модуля? :-)
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32131176
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
формы и модуля,
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32131260
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>формы и модуля

Целиком не могу. А вот советом помочь, это всегда. :-)
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32131430
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 tygra
Я может быть не совсем правильно выразился. Данные в списке берутся из справочника, но если в справочнике таких данных нет, то они должны автоматически добавляться. Т.е. от пользователя нужно будет только потвердить добавление нового значения в справочник (может быть он просто ошибся когда вводил).

2 pkarklin
И что, пользователь при занесении, например того же заказа, должен сначала убедиться, что такой записи в справочнике нет (посмотрев список), потом открыть справочник, занести туда запись, сохранить, а потом уже искать её снова в списке?
Это же сколько лишних действий? У меня тогда заказы начнут вводиться в 2 раза медленнее.

2 Voha
Сэнкс.
Действительно в DBLookupComboboxEh есть все что нужно
Свойство style := csDropDownEh
И событие NotInList с параметром NewText: String
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32131497
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что, пользователь при занесении, например того же заказа, должен сначала убедиться, что такой записи в справочнике нет (посмотрев список), потом открыть справочник, занести туда запись, сохранить, а потом уже искать её снова в списке?
Это же сколько лишних действий? У меня тогда заказы начнут вводиться в 2 раза медленнее.


Я не знаю, что у тебя подразумевается под заказом. Если это номер, то зачем его заполнять через поле со списком?
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32131936
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что, пользователь при занесении, например того же заказа, должен сначала убедиться, что такой записи в справочнике нет (посмотрев список), потом открыть справочник, занести туда запись, сохранить, а потом уже искать её снова в списке?
Это же сколько лишних действий? У меня тогда заказы начнут вводиться в 2 раза медленнее.


Ээээ, да ты как работаешь?

Так, как ты не хочешь, и есть ПРАВИЛЬНО
А ты небось из справочника прямо данные заносишь? А про ссылки на справочники не слыхал? Это когда ты в таблице хранишь не значение из справочника, а ID этого значения в справочнике.
Лучше начинай сейчас работать так, как нужно, иначе потом может быть поздно переучиваться.
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32132232
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 tygra

Млин ... да чего вы все.
Что я по вашему реляционной теории совсем не знаю?
И ни разу про нормализацию таблиц не слышал?
Естественно я храню не сами значения, а ссылки на справочник, но это не мешает мне делать именно так, как я хочу. И совсем не обязательно каждый раз при вводе нового значения справочника открывать для этого формочку. И если вы так никогда не делали - то тогда я не знаю :-)
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32132427
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не делали - так не делается по уму то :)

Как ты передашь ID справочника, если его еще нет? Будешь значение передавать, а в процедуре добавления записи сначала добавлять в справочник?

Так это изврат 10-ой степени :)
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32132580
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем в процедуре добавления?!?
Если в списке нет нужного значения, то его тут же добавляю.

Вот так это работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
procedure TForm1.DBLookupComboboxEh1NotInList(Sender: TObject;
  NewText: String; var RecheckInList: Boolean);
begin
  with ADOQuery1 do
  begin
   Append;
   FieldByName('Firm').AsString:= NewText;
   post;
   Requery;
  end;
  RecheckInList:=true;
end;


И если для вас такие простые вещи являются извратом 10-ой степени, то какую же степень изврата используете Вы? :)
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32132590
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не ну если фирма из одного названия, тады ой. Вот у меня справочник контрагентов ой с какой сложной структурой с привязкой к регионам, расчетным счетам, куча дополнительной инфы. Как это все через поле со списком забубенить, а. Ну и нафига мне тока одно название.
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32132605
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавление в такие списки должно быть всегда осознанным - а то юзер напишет какую-нить хрень или в букве ошибется - а ты его туды, вставляешь. Чего потом со справочником будет?
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32132717
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как проверить, есть ли в списке DBLookupComboboxEh1 слова ххххх)
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32132721
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergeyS

>а как проверить, есть ли в списке DBLookupComboboxEh1 слова ххххх)

Список то строится на наборе, вот там и проверяй.
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32132977
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 pkarklin

В некоторых особых случаях можно делать автоматически небольшую привязку, а так - конечно в основном это способ только для одного названия.

2 tygra

А кто мешает выдать пользователю MsgBox и спросить "А действительно ли ты хочешь добавить значение такое-то в такой-то справочник или просто ошибся когда вводил?" :)

2 SergeyS

Если это слово там есть, то оно само "выкатится" при вводе пользователем, а если нету, то после потери фокуса произойдет событие NotInList
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32133213
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это понятно, что после потери фокуса произойдет событие NotInList, но как сделать следующее:
у меня несколь полей Edit1... и два поля DBLookupComboboxEh, когда я заполнил эти поля и нажимаю на кнопку записи данных в базу, мне тут нужно проверить есть ли в "списке" полей DBLookupComboboxEh введенные значения.
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32133218
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergeyS

у меня несколь полей Edit1... и два поля DBLookupComboboxEh, когда я заполнил эти поля и нажимаю на кнопку записи данных в базу, мне тут нужно проверить есть ли в "списке" полей DBLookupComboboxEh введенные значения.

Чет хитро ты как-то делаешь. Что проверяешь и для чего непонятно. И что значит в списке полей ? Если нужно проверить, есть ли в списке DBLookupComboboxEh значение, введенное в один из едитов, ищи это значение через Locate метод DataSetа, на котором построен набор.
...
Рейтинг: 0 / 0
Добавление значений через DBLookup
    #32133230
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет, сейчас объясню поподробнее:
1. заполняются поля Edit1, Edit2, Edit3, Edit4, DBLookupComboboxEh1 и DBLookupComboboxEh2.
2. если в поле DBLookupComboboxEh1 и DBLookupComboboxEh2 занесли значение которого нет, то при потери фокуса он не переходил к событиею NotInList, а переходил к нему в пункте 3.
3. нажимается кнопка записи данных в базу и при этом выполняется проверка, если в поле DBLookupComboboxEh1 занесли значение которого нет, то переходил к событиею NotInList.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление значений через DBLookup
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]