Сделал свою деталь, на первом этапе там активна только кнопка добавить. После заполнения детали должны сразу стать активны кнопки Копировать, Изменить, Удалить, но в реальности они становятся активны только после Обновления(F5). В чем может быть ошибка?
Нравится
Вам нужно добавит Notify из карточки редактирования для объекта грида
на котором должно быть что-то типа:
function wnd_BaseGridAreaOnNotify(ScriptableService, Sender, Message, Data) { if (Message == MSG_OK) { if (!Assigned(BaseGridArea.GridDataset)) { BaseGridArea.GridDataset = GetDatasetFromWindow(Sender, 'dlData'); } UpdateGridAreaByEditWindow(Sender, BaseGridArea); if (Sender.Attributes.IsValueExists('LookupColumnClick')) { var Dataset = dlData.Dataset; var RecordID = GetRecordID(Dataset); if (!IsEmptyValue(RecordID)) { Dataset.RefreshRecord(RecordID, false); } }
пример точно есть в гриде задач
В том то и дело, что в объекте грида такая функция есть и под дебаггером видно, что она отрабатывает, но на кнопки это не влияет почему-то, в чем может быть дело. Вот функция в моем гриде:
function wnd_Keys2GridAreaOnNotify(ScriptableService, Sender, Message, Data) { wnd_BaseGridAreaOnNotify(ScriptableService, Sender, Message, Data); }
Событие MSG_OK туда передается, а также события Close, After_Close. В чем может быть причина. Какой участок кода отвечает за видимость кнопок? И что туда должно передаться, чтобы сделать кнопки видимыми?
Здравствуйте, Андрей!
Установка видимости кнопок осуществляется в скрипте "scr_BaseGridAreaUtils" в функции "InitializeButtons", которая вызывается в "InitializeGridArea".
Но проблема в том, что InitializeGridArea не вызывается при обработке сообщения MSG_OK. Отсюда вопрос, где в самой функции wnd_BaseGridAreaOnNotify происходит настройка кнопок?
Андрей, добавьте в вашу wnd_Keys2GridAreaOnNotify
RefreshDataset(BaseGridArea.GridDataset)
Спасибо, это конечно выход, но просто интересно, почему базовая функция не повлияла на кнопки
"Рябенко Андрей" написал:почему базовая функция не повлияла на кнопки
а у вас есть событие dlDataOnDatasetAfterPost? т.к. в BaseGridArea именно на это событие стоит обновление кнопок после добавления записи (см UpdateButtonsByDataset). Возможно вы не вызвали этот метод из вашего