Hello,
so what you will definitely need is a back-end Service (NWGW) for your f4 help which you then will call in order to get the values you need.
Now I give you 2 examples which show 2 different ways of doing this.
The scenario is that we have 2 fields one is called Make and one is called Model. They are about Cars so the first one will show a list of makes available which come from the back-end and the second one shows you then Models that belong to the make that was chosen.
This hopefully gives you a idea how to do this.
The Make field will use a search help based on what the user types into the field and the other one will be a drop down list box based on what the user selected in the first field.
This is using js for both the view and the controller.
So you need first are the fields etc... in the View:
this.makeItemTemplate = new sap.ui.core.Item({ text : "{MakeDesc}", key : "{MakeKey}", });
this.modelItemTemplate = new sap.ui.core.Item({ text : "{ModelDesc}", key : "{ModelKey}", });Then for the Make field the following is needed to get the search help going:
this.oMakeSelect = new sap.m.Input({ type : "Text", placeholder : "Enter Make ...", showSuggestion : true, suggestionItems : "{/ProductCollection}"[this.makeItemTemplate], suggestionItemSelected : [ oController.onMakeSel, oController ] });.In the onInit function you need to implement the search while typing for the Make input field:
this.getView().oMakeSelect.setFilterFunction(function(sTerm, oItem) { // A case-insensitive 'string contains' style filter return oItem.getText().match(new RegExp(sTerm, "i")); });
Then in the Controller in the onBeforeShow Method you bind the make template to the result of the service (GetVehMake is the association of the main service to the value help entity )
this.getView().oMakeSelect.bindAggregation("suggestionItems", this.oPath + "/GetVehMake", this.getView().makeItemTemplate);then onMakeSel will look like this and find all Models to the Make and bind the Make dropdownlistbox to the result list:
onMakeSel : function(oEvent) { this.oPath = oEvent.mParameters.selectedItem.mBindingInfos.key.binding.oContext.sPath; this.getView().oModelSelect.bindItems(this.oPath + "/GetVehicleModelSet", this.getView().modelItemTemplate); },Hope this helps somehow the same you should be able to use with more traditional value helps.
cheers
Kay