OnPrepareSelectWindow
Скрипты
Разработка

Запретить открытие окна в OnPrepareSelectWindow

Поставил на LookupControl - поле справочника для фильтрации, событие OnPrepareSelectWindow, где при условии if ((edtDepart.Value==undefined)||(edtDepart.Value=="")) { окно справочника фильртации должно вылетать предупреждение и при этом окно для фильтрации не должно открыться, что прописать чтоб окно не открылось, подскажите?

function edtOwnerOnPrepareSelectWindow(LookupControl, SelectWindow) {
var LookupDataset = LookupControl.LookupDatasetLink.Dataset;
if ((edtDepart.Value==undefined)||(edtDepart.Value=="")) {
ShowWarningDialog ("Поле 'Точка продаж' не может быть пустым")
.........//?
}else{
var ChannelIDsArray = edtDepart.Value.split(',');
var DepartmentIDsArray = edtDepart.Value.split(",");
ApplyDatasetIncludeFilter(LookupDataset, 'ContactOwnerDepartmentID',
DepartmentIDsArray, true);
}

Нравится

1 комментарий

Алексей, с окном сделать ничего не получится, так как его открытие происходит средствами ядра.

Возможно, Вам подойдёт следующее решение: во время обработки события OnPrepare Вашего окна редактирования проверять значение поля edtDepart. Если оно не заполнено, сделать поле edtOwner нередактируемым (edtOwner.IsEnabled = false). Подобную проверку делать и при изменении значения в поле edtDepart во время обработки события dlDataOnDatasetDataChange:

[javascript]
function dlDataOnDatasetDataChange(DataField) {
var FieldName = DataField.Name;
...
if (FieldName = 'DepartID') {
edtOwner.IsEnabled = !IsEmptyValue(edtDepart.Value);
}
...
}
[/javascript]

После этого в обработчике события OnPrepareSelectWindow контрола edtOwner достаточно будет оставить часть, которая в блоке else:

[javascript]
function edtOwnerOnPrepareSelectWindow(LookupControl, SelectWindow) {
var LookupDataset = LookupControl.LookupDatasetLink.Dataset;
var ChannelIDsArray = edtDepart.Value.split(',');
var DepartmentIDsArray = edtDepart.Value.split(",");
ApplyDatasetIncludeFilter(LookupDataset, 'ContactOwnerDepartmentID',
DepartmentIDsArray, true);
}
[/javascript]

Показать все комментарии