Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
ВнизMSSQL и ADO - Отображение значения Lookup-поля Найти похожие ветки
← →
SnapIn (2004-01-25 21:53) [0]Возникла проблема, когда в текущей записи меняется значение Lookup-поля,
новое значение не отображается.. Поясняю:
Есть таблица видов выпускаемой продукции, в ней есть поле, в котором
находится единица измерения этой продукции, которая выбирается из справочника (кг, шт, ...)
При заполнении таблицы видов выпускаемой продукции отображаю только
поле с названием единицы измерения ei_naim, а сам ID находится в поле ed_izm
(сам код единицы измерения пользователю видеть ведь не нужно)
Когда из справочника вибирается новая единица измерения -
ее код заношу естественно в ed_izm, но в отображаемом поле с названием
единицы измерения ei_naim значение не обновляется пока запись не будет сохранена!
Соответственно пользователь не видит, что он действительно выбрал нужное ему значение...
Как быть?
ЗЫ: Lookup-поле - это DBButtonEdit, а не DBLookupCombo
ЗЗЫ: Пытался присваивать сразу значение полю ei_naim, в котором название единицы измерения, но MSSQL, модифицирует не значение таблицы выпускаемой продукции, а значение справочника единиц измерения (если до этого единица измерения была "кг" под ID=5, а мы выбрали "шт" по ID=4 - в единицах измерения под ID=5 просто появляется строка "шт".. становится две учетных записи с названием "шт", под двумя ID). А ведь в свойствах Unique Table выставил "Вид выпускаемой продукции"!!!!!!!!!!! И Resync Command свою задал:
select vp.*,
u.kod users_kod, u.naim users_naim, u.naimen users_naimen,
ei.kod ei_kod, ei.naim ei_naim, ei.naimen ei_naimen
from GGK.dbo.vid_prod vp
INNER JOIN GGK.dbo.users u ON vp.modik = u.kod
INNER JOIN GGK.dbo.ed_izm ei ON vp.ed_izm = ei.kod
where vp.kod = ?
← →
ЮЮ (2004-01-26 02:34) [1]>значение не обновляется пока запись не будет сохранена!
естественно, что пока запись не сохранена, "подстановочное значение" соответствует тому, что в наборе данных, т.е. старому.
Для визуализации изменений и придумали DBLookup-компоненты. Если же ты упорно хочешь, чтобы пользователь вводил в поле 4, а в другом сразу видел "шт", то сделай это поле вычислимым на клиенте
← →
SnapIn (2004-01-26 06:50) [2]Нет, пользователь ничего не вводит, он просто выбирает запись из справочника
Выход я нашел, просто нужно отменить обязвтельные поля и сохранять после выбора из справочника, но это, конечно, коряво..
← →
ЮЮ (2004-01-26 08:10) [3]>Нет, пользователь ничего не вводит, он просто выбирает запись из справочника
Тогда надо корректировать не ei.naim ei_naim, а vp.ed_izm и, если религия не позволяет использовать DBLookup-компоненты, то эмулировать его работу в DBButtonEdit-е.
← →
SnapIn (2004-01-26 16:23) [4]
> если религия не позволяет использовать DBLookup-компоненты
гыы.. просто если в списке значений сотни, а нужно быстро находить нужное, лучше вытащить окошечко, в котором уж есть расширенный поиск, фильтрация и т.д. *!* =)
← →
ЮЮ (2004-01-27 03:40) [5]Ради бога, но корректировать надо поле vp.ed_izm, тем не менее.
Тогда, допиши обработчики TField.OnGet(Set)Text для этого поля, чтобы показывать одно, а на самом деле редактировать другое
← →
SnapIn (2004-01-27 14:07) [6]ok, попробуем
← →
sergvc (2004-01-28 14:30) [7]Можно воспользоваться DBGrid.onDrawColumnCell
← →
ЮЮ (2004-01-29 03:34) [8]>sergvc (28.01.04 14:30) [7]
Этого мало. Грид-то нарисует что хочешь, а когда войдешь в редактор, то там окажется "код", а хочется "значение"
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.109 c