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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...