Skip to Content
0
Jun 12, 2018 at 08:34 PM

Formatter is not called

781 Views Last edit Jun 13, 2018 at 12:48 PM 3 rev

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 :/