Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Предзаполнение грида с полями TcxExtLookupComboBox / 6 сообщений из 6, страница 1 из 1
16.11.2020, 13:51
    #40018824
kaktus1983
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предзаполнение грида с полями TcxExtLookupComboBox
Приветствую!

Есть cxGrid с TcxGridBandedTableView, в нем есть поля с Proporties = TcxExtLookupComboBox, которые ссылаются на свои TcxGridDBTableView.
TcxGridDBTableView - справочники, имеют вид: ключ(число), набор строковых значений.
При открытии формы, cxGrid необходимо заполнить значениями по умолчанию: программно выбрать значения в полях TcxExtLookupComboBox (строки) имея численные значения ключей из TcxGridDBTableView.

Как программно сделать такой выбор?
...
Рейтинг: 0 / 0
16.11.2020, 14:57
    #40018877
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предзаполнение грида с полями TcxExtLookupComboBox
Как ни странно, все просто:
Код: pascal
1.
elcbCurrency.EditValue         := FBN('ID_CURRENCY').Value;
...
Рейтинг: 0 / 0
16.11.2020, 15:20
    #40018901
kaktus1983
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предзаполнение грида с полями TcxExtLookupComboBox
X11,
Действительно))
спасибо!
...
Рейтинг: 0 / 0
19.11.2020, 14:54
    #40020410
kaktus1983
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предзаполнение грида с полями TcxExtLookupComboBox
Еще есть смежный вопрос по ExtLookupComboBox, спрошу здесь чтоб не заводить новую тему.

После выбора значения в выпадающем GridDBTableView из ExtLookupComboBox, необходимо заполнить поля базового GridBandedTableView (расположенные по соседству с выбранным значением из ExtLookupComboBox).
Я пробовал использовать события ExtLookupComboBox - PropertiesCloseUp и PropertiesEditValueChanged
в них пытаюсь и через сам GridDBTableView и через его DataSet заполнить соседние поля.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var btv: TcxGridBandedTableView;
     tv: TcxGridDBTableView;

 tv := TcxGridDBTableView( TcxExtLookupComboBox(Sender).Properties.View );
btv := TcxGridBandedTableView( TcxGridSite(TcxExtLookupComboBox(Sender).Parent).GridView );

// 1
btv.DataController.Values [btv.DataController.FocusedRowIndex, <заполняемый столбец>] := tv.DataController.Values [tv.DataController.FocusedRecordIndex, <столбец из Combo грида>];
// 2
btv.DataController.SetEditValue( <заполняемый столбец>, tv.DataController.Values [tv.DataController.FocusedRecordIndex, <столбец из Combo грида>], evsValue);
// 3
btv.DataController.Values [btv.DataController.FocusedRowIndex, <заполняемый столбец>] := <Combo DataSet>.FBN(<поле>).AsVariant;


Поля заполняются, но вот выбранное в значение в поле ExtLookupComboBox почему-то исчезает как только начинаю заполнять поля.
Как сделать заполнение соседних полей и сохранить в ExtLookupComboBox выбранное значение?
...
Рейтинг: 0 / 0
19.11.2020, 15:49
    #40020446
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предзаполнение грида с полями TcxExtLookupComboBox
Код: pascal
1.
2.
3.
btv.DataController.edit;
btv.DataController.Values[] := '';
btv.DataController.post;
...
Рейтинг: 0 / 0
19.11.2020, 16:10
    #40020461
kaktus1983
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предзаполнение грида с полями TcxExtLookupComboBox
X11,
Спасибо за идею, работает если добавить btv.DataController.post перед изменениями:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
procedure ExtLookupComboBoxPropertiesEditValueChanged( Sender: TObject);
var btv: TcxGridBandedTableView;
begin
  btv := TcxGridBandedTableView( TcxGridSite(TcxExtLookupComboBox(Sender).Parent).GridView );
  btv.DataController.Post;
  btv.DataController.Values [] := ...
end;
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Предзаполнение грида с полями TcxExtLookupComboBox / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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