Hi Isomorphic,
I think there is a problem with filterRow-SelectItem criteria. Depending on whether there is implicitCriteria it produces array-criteria or iContains-criteria.
I'm testing in 13.0p, because this version has the nice feature of a human readable hover description of the criteria, but it also applies to 12.0p and 12.1p.
I'd always expect the latter case for the SelectItem-criteria, as it is a selection and should not result in iContains, especially as the hover say this all the time:
"Field criteria: Government is one of commonwealth".
Best regards
Blama
Please see this modified testcase (v13.0p_2024-06-04):
I think there is a problem with filterRow-SelectItem criteria. Depending on whether there is implicitCriteria it produces array-criteria or iContains-criteria.
I'm testing in 13.0p, because this version has the nice feature of a human readable hover description of the criteria, but it also applies to 12.0p and 12.1p.
I'd always expect the latter case for the SelectItem-criteria, as it is a selection and should not result in iContains, especially as the hover say this all the time:
"Field criteria: Government is one of commonwealth".
- Start sample
- Show filter row
- Filter for "commonwealth"
Code:Request: data:{ operator:"and", criteria:[ { fieldName:"continent", operator:"inSet", value:[ "Africa", "Asia", "Australia/Oceania", "Europe", "North America", "South America" ] }, { fieldName:"government", operator:"iContains", value:"commonwealth" } ] }, - Click the null-implicitCriteria button
Code:data:{ government:[ "commonwealth" ] },
Best regards
Blama
Please see this modified testcase (v13.0p_2024-06-04):
Code:
isc.ListGrid.create({
ID: "filterGrid",
width: 850,
height: 500,
alternateRecordStyles: true,
dataSource: worldDS,
autoFetchData: true,
groupByField: "continent",
groupStartOpen: "all",
sortField: "continent",
groupByMaxRecords: 80,
sortByGroupFirst: "true",
implicitCriteria: {
_constructor: "AdvancedCriteria",
operator: "and",
criteria: [{
fieldName: "continent",
operator: "inSet",
value: ["Africa", "Asia", "Australia/Oceania", "Europe", "North America", "South America"]
}]
},
fields: [{
name: "countryCode",
width: 60
}, {
name: "government", filterEditorProperties:{type:"SelectItem", sortField:"government", multiple:true},
}, {
name: "continent",
}, {
name: "capital",
}, {
name: "independence",
width: 100
}, {
name: "population",
width: 100
}, {
name: "gdp",
width: 85
}]
});
// Implicit criteria Buttons
isc.IButton.create({
ID: "europeAsiaBtn",
width: 250,
title: "inSet: AF/AS/AU/EU/NA/SA (=all)",
click: function() {
filterGrid.setImplicitCriteria({
_constructor: "AdvancedCriteria",
operator: "and",
criteria: [{
fieldName: "continent",
operator: "inSet",
value: ["Africa", "Asia", "Australia/Oceania", "Europe", "North America", "South America"]
}]
});
}
});
isc.IButton.create({
ID: "europeAsiaAusBtn",
width: 250,
title: "inSet: AS/AU/EU/NA/SA",
click: function() {
filterGrid.setImplicitCriteria({
_constructor: "AdvancedCriteria",
operator: "and",
criteria: [{
fieldName: "continent",
operator: "inSet",
value: ["Asia", "Australia/Oceania", "Europe", "North America", "South America"]
}]
});
}
});
isc.IButton.create({
ID: "allCtnBtn",
width: 250,
title: "All continents (null criteria)",
click: function() {
filterGrid.setImplicitCriteria(null);
}
});
isc.HStack.create({
ID: "criteriaBtnStack",
membersMargin: 30,
height: 1,
members: [
isc.Label.create({
contents: "Implicit Criteria:",
height: 1
}), europeAsiaBtn, europeAsiaAusBtn, allCtnBtn
]
});
// Filter criteria Buttons
isc.IButton.create({
ID: "showFilterRowBtn",
width: 250,
title: "Show filterRow",
click: function() {
filterGrid.setShowFilterEditor(true);
}
});
isc.IButton.create({
ID: "hideFilterRowBtn",
width: 250,
title: "Hide filterRow",
click: function() {
filterGrid.setShowFilterEditor(false);
}
});
isc.HStack.create({
ID: "filterBtnStack",
height: 1,
membersMargin: 30,
members: [
isc.Label.create({
contents: "Filter:",
height: 1
}),
showFilterRowBtn, hideFilterRowBtn
]
});
isc.VStack.create({
membersMargin: 30,
members: [
criteriaBtnStack, filterBtnStack, filterGrid
]
});