Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 2878

Re: Fiori Object List Item refresh on Date Picker event

$
0
0

Hello Sai!

It didn't work for me, since I had to leave initial binding as it was generated by Layout Editor in Web IDE.

But anyways, thanks for the input - you gave me an idea, how it could be done. Here's my code below (maybe it's a bit awkward, but hey - it's working):

onChangeDate: function(oEvent) {             var oController = this;             var oItem = oEvent.getSource();             var sDate = oController._getDateYyyymmdd(oItem.getDateValue());             var sPernr = oController._getPernr();             MessageToast.show(sDate + " " + sPernr);             var oList = oController.getView().byId("listSeniority");             var sURL = "/sap/opu/odata/sap/ZHCM_XSS01_CALCSEN_SRV";             var oDataModel = new sap.ui.model.odata.ODataModel(sURL);             var oItemTemplate = oController._setItemTemplate();             oDataModel.callFunction("/changeDate", {                 method: 'GET',                 urlParameters: {                     "KeyDate": sDate,                     "EmployeeNumber": sPernr                 },                 success: function (oData) {                     var oDataSet = oData;                     oController._changeDateSuccess(oDataSet, oList, oItemTemplate);}             });         },         _getDateYyyymmdd: function(vDate) {             var yyyy = vDate.getFullYear().toString();             var mm = (vDate.getMonth() + 1).toString();             var dd = vDate.getDate().toString();             var vDateYyyymmdd = yyyy + (mm[1] ? mm : "0" + mm[0]) + (dd[1] ? dd : "0" + dd[0]);             return vDateYyyymmdd;         },         _getPernr: function() {             var sPernr = this.getView().byId("objectHeader").getIntro();             return sPernr;         },         _setItemTemplate: function() {             var oItemTemplate = new sap.m.ObjectListItem({                 type: "Active",                 counter: null,                 title: "{SeniorityText}",                 number: "{CalYY} - {CalMM} - {CalDD}",                 numberUnit: "годы - месяцы - дни", 
                markFavorite: false,                 markFlagged: false,                 showMarkers: false             });             return oItemTemplate;         },         _changeDateSuccess: function(oDataSet, oList, oItemTemplate) {             var oModelHelp = new sap.ui.model.json.JSONModel();             oModelHelp.setData(oDataSet);             var sLength = oModelHelp.oData.results.length;             var aData = [];             for (var i = 0; i < (sLength); i++) {                 aData[i] = {                     "SeniorityText": oModelHelp.oData.results[i].SeniorityText,                     "CalYY": oModelHelp.oData.results[i].CalYY,                     "CalMM": oModelHelp.oData.results[i].CalMM,                     "CalDD": oModelHelp.oData.results[i].CalDD,                 };             }             var oModel = new sap.ui.model.json.JSONModel();             oList.setModel(oModel);             oList.bindAggregation("items", {                 path: "/Seniority",                 template: oItemTemplate             });             oModel.setData({                 Seniority: aData             });             oList.setModel(oModel);         } 

Regards,

Anton

 

P.S. I also had implemented function import within my backend to get proper data, but it also could be done with oDataModel.read method with corresponding filters.


Viewing all articles
Browse latest Browse all 2878

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>