Поставил на 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);
}
Нравится
Алексей, с окном сделать ничего не получится, так как его открытие происходит средствами ядра.
Возможно, Вам подойдёт следующее решение: во время обработки события OnPrepare Вашего окна редактирования проверять значение поля edtDepart. Если оно не заполнено, сделать поле edtOwner нередактируемым (edtOwner.IsEnabled = false). Подобную проверку делать и при изменении значения в поле edtDepart во время обработки события dlDataOnDatasetDataChange:
function dlDataOnDatasetDataChange(DataField) { var FieldName = DataField.Name; ... if (FieldName = 'DepartID') { edtOwner.IsEnabled = !IsEmptyValue(edtDepart.Value); } ... }
После этого в обработчике события OnPrepareSelectWindow контрола edtOwner достаточно будет оставить часть, которая в блоке else:
function edtOwnerOnPrepareSelectWindow(LookupControl, SelectWindow) { var LookupDataset = LookupControl.LookupDatasetLink.Dataset; var ChannelIDsArray = edtDepart.Value.split(','); var DepartmentIDsArray = edtDepart.Value.split(","); ApplyDatasetIncludeFilter(LookupDataset, 'ContactOwnerDepartmentID', DepartmentIDsArray, true); }