Как получить пустой список при отсутствии совпадений в фильтре
Здравствуйте, Коллеги! У меня возник вопрос по фильтрам, почему когда массив arrayNeededIdOfSalesCenter пуст, он мне выводит все значения, а не пустоту? Когда массив не пуст, все нормально отрабатывает. Как получить именно пустоту? Заранее спасибо за помощь.
			"ITSaleCenter": {
				"lookupListConfig": {
					"filters": [
						function() {
							var currentSaleArea = this.get("ITSaleArea"),
								filterGroupMain = Ext.create("Terrasoft.FilterGroup");
							if (currentSaleArea) {
								var arrayNeededIdOfSalesCenter = [];
								this.get("CollectionSaleCenter").each(function(item) {
									arrayNeededIdOfSalesCenter.push(item.get("ITSysAdminUnit.Name"));
								});
								filterGroupMain.add("IsNeededNameSaleCenter",
									Terrasoft.createColumnInFilterWithParameters(
										"Name",
										arrayNeededIdOfSalesCenter));
							}
							return filterGroupMain;
						}
					]
				}
			},
Нравится
Понял вас, самый простой способ проверить размер массива и добавить туда несуществующее значение.
"ITSaleCenter": {
"lookupListConfig": {
"filters": [
function() {
var currentSaleArea = this.get("ITSaleArea"),
filterGroupMain = Ext.create("Terrasoft.FilterGroup");
if (currentSaleArea) {
var arrayNeededIdOfSalesCenter = [];
this.get("CollectionSaleCenter").each(function(item) {
arrayNeededIdOfSalesCenter.push(item.get("ITSysAdminUnit.Name"));
});
if (arrayNeededIdOfSalesCenter.length == 0) {
arrayNeededIdOfSalesCenter.push("#!@^");
}
filterGroupMain.add("IsNeededNameSaleCenter",
Terrasoft.createColumnInFilterWithParameters(
"Name",
arrayNeededIdOfSalesCenter));
}
return filterGroupMain;
}
]
}
},
В таком случае при отсутствии значений в arrayNeededIdOfSalesCenter, ITSaleCenter будет пуст.
Да, поведение не совсем очевидное, но оно действительно такое.
Необходимо проверять массив на пустоту, перед формированием фильтра, если он не пуст - формируем Ваш createColumnInFilterWithParameters, в случае пустого массива - возвращать другой фильтр, специальный который всегда в окне справочника будет выдавать "пустоту"
я обычно использую такой "попросим вернуть Id равные NULL":
Terrasoft.createColumnIsNullFilter("Id");
решение универсальное, колонка Id у нас есть везде, а нулевые значения в ней не встречаются :)
 
   
  