Hi , i don't know why my formatter is not called, if i don't call my formatter the value is displayed but if i call my formatter from the view is not
<ObjectStatus
text="{path: 'timestamp', formatter: '.formatter.hora_f'}"
state="{parts: [{ path: 'timestamp'}], formatter: '.formatter.oldHora' }"
icon="{path: 'timestamp', formatter: '.formatter.icon'}"/>
in my ontroller
sap.ui.define([
"jquery.sap.global",
"sap/ui/core/mvc/Controller",
"sap/m/MessageToast",
"sap/ui/model/json/JSONModel",
"sap/ui/model/odata/ODataModel",
"sap/ui/base/ManagedObject",
"sap/ui/model/odata/v2/ODataModel",
"Dash/Asesor/controller/formatter",
"sap/ui/model/Filter"
], function(Jquery, Controller, MessageToast, JSONModel, ODataModel, ManagedObject, ODataModel2, formatter, Filter) {
"use strict";
return Controller.extend("Dash.Asesor.controller.Main", {
formatter : formatter,
onInit : function() {
this.varGlob = new JSONModel();
this.varGlob.asesor = "";
this.oDialog();
},
getInfo : function() {
var tablaCitas = this.byId("tabInfoCitas");
this.varGlob.asesor = this.byId("usuario").getValue();
var sURI = "/sap/opu/odata/SAP/ZERP_ACTIVIDADES_SRV";
var oDataModel = new ODataModel(sURI, true);
var oModel = new JSONModel();
var oFilter = new Filter("Asesor", "EQ", this.varGlob.asesor);
oDataModel.read("/ReservaSet?$filter=Asesor eq '" + this.varGlob.asesor + "'", {
// filters: [oFilter],
success: function(oData, response) {
var oResults = oData.results;
oModel.setData(oData.results);
tablaCitas.setModel(oModel);
},
Error: function(oError){
}
}, 1000);
this.closeDialog();
},
oDialog : function() {
var oView = this.getView();
var oDialog = oView.byId("userDialog");
// create dialog lazily
if (!oDialog) {
// create dialog via fragment factory
oDialog = sap.ui.xmlfragment(oView.getId(), "Dash.Asesor.view.Popup_usuario", this);
oView.addDependent(oDialog);
}
oDialog.open(); // Abrimos el dialogo
},// oDialog
closeDialog : function() {
this.getView().byId('userDialog').close();
},
});
});
and this is my formatter:
sap.ui.define([], function() {
"use strict";
return {
fecha_f : function (sTimestamp){
// Pasamos la fecha a una variable
var sResult_f = sTimestamp;
// Paso variable a String para poder manejar
if (sResult_f == "") {
return sResult_f;
} else {
sResult_f = sResult_f.toString();
var fecha = sResult_f.substr(6,2)+ "-" +
sResult_f.substr(4,2)+ "-" +
sResult_f.substr(0,4);
return fecha; // Ahora en el controlador de la vista lo cargamos como una dependencia
}
},
hora_f : function(sTimestamp) {
// Pasamos la fecha a una variable
var sResult_f = sTimestamp;
// Paso variable a String para poder manejar
if (sResult_f == "") {
return sResult_f;
} else {
sResult_f = sResult_f.toString();
var hora = sResult_f.substr(8,2) + ":" + sResult_f.substr(10,2);
return hora;
}
},
oldHora : function(sHora) {
var Hora = parseInt(sHora.substr(8,2));
var Minu = parseInt(sHora.substr(10,2));
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
if ( Hora > h ) {
return "Error";
}
if ( Hora < h ) {
return "Success";
}
if ( Hora == h ) {
if ( Minu >= 0 && Minu <= 29 ) {
if ( m <= 29 ) {
return "None";
} else {
return "Success";
}
}
if ( Minu >= 30 && Minu <= 59 ){
if ( m >= 30 ) {
return "None";
} else {
return "Error";
}
}
}
},
icon : function(timeStamp) {
var Hora = parseInt(timeStamp.substr(8,2));
var Minu = parseInt(timeStamp.substr(10,2));
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
if ( Hora > h ) {
return "sap-icon://away";
}
if ( Hora < h ) {
return "sap-icon://accept";
}
if ( Hora == h ) {
if ( Minu >= 0 && Minu <= 29 ) {
if ( m <= 29 ) {
return "sap-icon://share";
} else {
return "sap-icon://accept";
}
}
if ( Minu >= 30 && Minu <= 59 ){
if ( m >= 30 ) {
return "sap-icon://share";
} else {
return "sap-icon://away";
}
}
}
}
}
});
i changed my formatter of folder and nothing, what it can be? i put some break points to see if the problem was the formatter and there i noticed that it was not call it :/