see this code I'm using and watch out for itemContext.getFormItem().getValue():
Code:
setPickListFilterCriteriaFunction(new FormItemCriteriaFunction() { @Override public Criteria getCriteria(FormItemFunctionContext itemContext) { Criterion currentCountryCriteria = new Criterion(DatasourceFieldEnum.MV_ZIPCODE__COUNTRY_ID.getValue(), OperatorId.EQUALS, selectedCountry.getValueAsString()); if (itemContext.getFormItem().getValue() != null) { Criterion currentZipcodeCriteria = new Criterion(DatasourceFieldEnum.MV_ZIPCODE__ZIPCODE.getValue(), OperatorId.ISTARTS_WITH, itemContext.getFormItem().getValue().toString()); Criterion currentCityCriteria = new Criterion(DatasourceFieldEnum.MV_ZIPCODE__ORTSVORSCHLAG.getValue(), OperatorId.ISTARTS_WITH, itemContext.getFormItem().getValue().toString()); Criterion currentCityCriteria2 = new Criterion(DatasourceFieldEnum.MV_ZIPCODE__ORTSVORSCHLAG.getValue(), OperatorId.ICONTAINS, " " + itemContext.getFormItem().getValue().toString()); AdvancedCriteria zipcodeOrCity = new AdvancedCriteria(); zipcodeOrCity.buildCriterionFromList(OperatorId.OR, new Criterion[] { currentZipcodeCriteria, currentCityCriteria, currentCityCriteria2 }); AdvancedCriteria countryAndZipcodeOrCity = new AdvancedCriteria(); countryAndZipcodeOrCity.buildCriterionFromList(OperatorId.AND, new Criterion[] { currentCountryCriteria, zipcodeOrCity }); return countryAndZipcodeOrCity; } else return currentCountryCriteria; } });
Blama
Leave a comment: