Jump to content

Автоматический DataSet.Post при закратии UniDBLookupComboBox


x11

Recommended Posts

UniDBLookupComboBox привязан к столбцу сетки UniDBGrid.

Хочу сделать так, чтобы когда пользователь сделал выбор и список UniDBLookupComboBox закрылся, то выполнить DataSet.Post.

Пробовал 2 события: OnCloseUp и OnSelect -

 

  if DataSet1.State in dsEditModes then
    DataSet1.post;

Но проблема в том, что в этих событиях в момент закрытия списка сам DataSet1, который привязан к сетке, находится в режиме dsBrowse.

В общем, как правильно записать выбор пользователя в базу при закрытии списка?

Link to comment
Share on other sites

54 minutes ago, x11 said:

Хочу сделать так, чтобы когда пользователь сделал выбор и список UniDBLookupComboBox закрылся, то выполнить DataSet.Post.

Попробуйте такое решение:

UniDBLookupComboBox.ClietnEvents.ExtEvents ->

function select(combo, record, eOpts)
{
    combo.blur();
}

 

  • Like 1
Link to comment
Share on other sites

Да, помогло, спасибо.

В паре с

 if DataSet1.State in dsEditModes then
    DataSet1.post;

теперь сохраняется значение в базу сразу при закрытии.

 

Но хотелось бы в будущем, чтобы это работало без добавления combo.blur();

Link to comment
Share on other sites

Чтобы не создавать похожую тему, задам вопрос здесь.

Возможно ли сделать так, чтобы привязанный к столбцу выпадающий список UniDBLookupComboBox автоматически выпадал, когда пользователь вызывает ячейку таблицы на редактирование?

Ну т.е. когда пользователь делает двойной щелчок мышкой по ячейке этого столбца.

Потому что неудобство в том, что приходится делать аж ТРИ щелчка по ячейке, чтобы  выпал список.

Спасибо.

Link to comment
Share on other sites

22 minutes ago, x11 said:

Возможно ли сделать так, чтобы привязанный к столбцу выпадающий список UniDBLookupComboBox автоматически выпадал, когда пользователь вызывает ячейку таблицы на редактирование?

Попробуйте:

procedure TMainForm.UniFormCreate(Sender: TObject);
begin
  UniDBLookupComboBox1.JSInterface.JSAddListener('focus', 'function(){this.expand()}');
end;

 

  • Like 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...