Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2011, 13:16   #1
mental
Пользователь
 
Регистрация: 07.01.2009
Сообщений: 36
По умолчанию picklist

Одно из полей DBGrid'a настроено под заполнение из выпадающего списка (ComboBox). Проблема в том, что это поле в базе может принимать 2 значения: "0" и "1". Но в ComboBox и DbGrid должны отображаться "Нет" и "Да" вместо "0" и "1" соответственно.
На отображение записей весит запрос:

Код:
AdoQuery4.SQL.Text:='Select Item AS Товар,case when Active = 1 then '+#39+''+'Да'+''+#39+' when Active = 0 then '+#39+''+'Нет'+''+#39+' end As [Активно] From Goods';
AdoQuery4.Active:=true;
Значения из базы успешно преобразуются и отображаются в DBGrid'e.

И на событие AdoQuery.BeforePost:

Код:
If AdoQuery4.FieldValues['Активно']='Да' then
AdoQuery4.FieldValues['Активно']:='1' else
AdoQuery4.FieldValues['Активно']:='0';
Проблема в том, что после изменения значений в ComboBox (когда редактируешь записи) он просто игнорирует и возвращает прежнее значение. Когда добавляешь новую запись он игнорирует выпадающий список и пытается вставить значение NULL.

Помогите разобраться.
mental вне форума Ответить с цитированием
Старый 02.09.2011, 13:54   #2
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

У ComboBox есть свойство ItemIndex (Integer) можешь его использовать

А на событие AdoQuery.AfterScroll повесь это

Код:
if AdoQuery4.FieldByName('Активно').AsString <> '' then
   ComboBox1.ItemIndex := AdoQuery4.FieldByName('Активно').AsInteger ;
А в гриде можно сделать не да и нет, а галочки (DBGridEh)

Так же как вариант можно использовать Lookup поля и компонент DBLookupComboBox

Последний раз редактировалось Gulik; 02.09.2011 в 13:57.
Gulik вне форума Ответить с цитированием
Старый 02.09.2011, 14:09   #3
mental
Пользователь
 
Регистрация: 07.01.2009
Сообщений: 36
По умолчанию

Наверно не правильно выразился, самого компонента ComboBox нету, настроено так:
В гриде в свойстве picklist прописаны: Да Нет

Проблема не в выпадающем списка, а в добавлении/обновлении записей.

Последний раз редактировалось mental; 02.09.2011 в 14:12.
mental вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
picklist mental БД в Delphi 0 25.08.2011 12:24
добавление из DBGrid в PickList Opiym БД в Delphi 0 30.05.2011 17:39
DBGrid PickList и DBEdit Abricosko БД в Delphi 6 01.06.2010 18:00
Как сделать PickList в D7 TitAn БД в Delphi 2 06.06.2007 11:37