Форум: "Базы";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
ВнизНе присваивается значение в базе Найти похожие ветки
← →
kyn66 © (2006-10-10 10:26) [0]RxDBComboBox1 связан с неким полем таблицы. В нем три итемса и соответственно 3 Value, которые должны заноситься в таблицу при выборе. Изначально при открытии таблицы на редактирование я RxDBComboBox1 принудительно устанавливаю в :
RxDBComboBox1.OnChange(Self);
...
procedure TMainFrm.RxDBComboBox1Change(Sender: TObject);
begin
if RxDBComboBox1.ItemIndex <> -1 then
begin
SovLab.Visible :=
RxDBComboBox1.Values[RxDBComboBox1.ItemIndex] = "2";
SovDBEdit.Visible :=
RxDBComboBox1.Values[RxDBComboBox1.ItemIndex] = "2";
end
else
begin
RxDBComboBox1.ItemIndex := 0;
SovLab.Visible := False;
SovDBEdit.Visible := False;
end
end;
Т.е. по умолчанию должен быть первый элемент списка. После окончания редактирования сохраняю, но Value не записывается в базу, пока по нему реально не кликнешь. Ведь я так и хотел, чтобы значение по умолчанию само записывалось, если оно устраивает без клика по RxDBComboBox1.
Как быть? Какое ешшо событие подвесить?
← →
ЮЮ © (2006-10-10 10:30) [1]
> чтобы значение по умолчанию само записывалось,
Нужно установить у DataSer-а, например в AfterInsert. Тогда манипуляции в RxDBComboBox1Change - просто лишние
← →
sniknik © (2006-10-10 10:32) [2]Post; после "ручных" изменений. (но лучше всего не в событии на изменение..., а менять например в событии бефорепост, да и вообще, значение по умолчанию мохно просто указать в поле (в данных, а не гриде))
← →
kyn66 © (2006-10-10 10:45) [3]В таком случае можно было поставить простой Combobox и все...
← →
ЮЮ © (2006-10-10 10:51) [4]
> В таком случае можно было поставить простой Combobox и все.
> ..
в каком? [1] или [2]
> Изначально при открытии таблицы на редактирование я RxDBComboBox1
> принудительно устанавливаю в :
Настрой DataSource и DataField - и безо всякого кода он будет показывать значение для текущей записи. [1] касается вновь добавляемых записей.
← →
sniknik © (2006-10-10 10:52) [5]поставь. если считаеш что это проще. но по мне так проще полю раз задать дефаултное значение и убрать весь твой код.
← →
kyn66 © (2006-10-10 11:04) [6]Значение по умолчанию поставить не получится, т.к. используется не реальная база, а TRxMemoryData
← →
ЮЮ © (2006-10-10 11:12) [7]У TRxMemoryData тоже есть AfterInsert, где можно проинициализировать поля созданной записи.
← →
sniknik © (2006-10-10 11:14) [8]> т.к. используется не реальная база, а TRxMemoryData
не скажу за TRxMemoryData но у клиентдатасета и у adoдатасета (в режиме "без базы") те же самые поля, с темиже свойствами что и у "реальнобазовых".
(возможно конечно, что в случае с TRxMemoryData - "ключница водку делала"... но тогда это повод от него отказаться, глюки пасутся стаями...)
← →
kyn66 © (2006-10-10 11:15) [9]
> У TRxMemoryData тоже есть AfterInsert, где можно проинициализировать
> поля созданной записи.
Я согласен, но хочется оставить именно RxDBComboBox1, а хотя....
← →
sniknik © (2006-10-10 11:32) [10]> но хочется оставить именно RxDBComboBox1
ну тогда в нем меняй значения не в нем самом, а в таблице.
← →
kyn66 © (2006-10-10 12:20) [11]Короче решил перейти на простой ComboBox. Всем спасибо за помощь
← →
ЮЮ © (2006-10-10 12:29) [12]
> Короче решил перейти на простой ComboBox
И как это позволит что-то изменять в DataSete, если даже с DB-Aware не удавалось изменить ???
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c