2014-05-08 13 views
5

Bir OData Modelinden alınan bir SAPUI5 tablom var. Sütunlarından biri biçimlendirmek istediğim bir tarih/saat alanıdır, ancak SUI5'te nasıl yapılacağını anlayamıyorum. Bir SAPUI5 tablosundaki bir ODataModel'den bir tarih biçimlendirme

Bu

şimdi ne yapıyorum:

var tableModel = new sap.ui.model.odata.ODataModel("..."); 
var table = new sap.ui.table.DataTable(); 
table.setModel(tableModel); 
table.addColumn(new sap.ui.table.Column({ 
    label: new sap.ui.commons.Label({text: "Date"}), 
    template: new sap.ui.commons.TextView().bindProperty("text", "DATE"), 
    sortProperty: "DATE", 
    filterProperty: "DATE" 
})); 

İşte çıktı hatlarının ilk çift var (benim tarayıcı dili Almanca olan):

example output

yapmak istediğim tüm tarih ve saat biçimini değiştir, diyelim, mm/gg/yyyy ss: dd

Bazı arama yaptım ve aşağıdaki soru tam olarak benim sorunum - ama var Bu önemsiz bir soru olabilir ve ben sadece kolayca bunun nasıl kaçırılmış, ya da birinde ele olduğunu fark Date format in a table SAPUI5

: ya ben anlamıyorum ya aslında sorunu çözmek olmadığını kabul edilen bir yanıt resmi dersler. Bu durumda, lütfen yorumlarda bana göster ve bu soruyu sileceğim.

+0

Olası kopyası [OData Service'ten UI'ye nasıl tarih/saat eklenir?] (Https://stackoverflow.com/questions/47593990/how-to-add-date-time-from-odata-service- doğru olarak ui) – boghyon

cevap

2

kullanım biçimlendirici fonksiyonlu: Bir biçimlendirici işlevinin kullanılması

var tableModel = new sap.ui.model.odata.ODataModel("..."); 
var table = new sap.ui.table.DataTable(); 
table.setModel(tableModel); 
table.addColumn(new sap.ui.table.Column({ 
    label: new sap.ui.commons.Label({text: "Date"}), 
    template: new sap.ui.commons.TextView({ 
     text : { 
      path : 'DATE', 
      formatter : function(value){ 
       return /* TODO: some format logic */; 
      } 
     } 
    }), 
    sortProperty: "DATE", 
    filterProperty: "DATE" 
})); 
+0

Ah! Mantıklı. 'Yol' parametresini yakalamadım. Teşekkürler Nikolay! –

+0

Hoşgeldiniz, yardım etmekten mutluluk duyuyorum :) –

15

çok esnektir, ancak kendi biçimini mantığı yazmak zorunda kalmadan basit bir şey arıyorsanız, yerine type özelliğini kullanarak düşünebiliriz böyle formatter daha:

template: new sap.ui.commons.TextView().bindProperty("text", { 
    path: "OrderDate", 
    type: new sap.ui.model.type.Date({pattern: "MM/dd/yyyy hh:mm"}) 
}) 
+1

Bunun için teşekkürler. Her iki yaklaşım da, şu anda yaptığım şey için kullanışlıdır, çünkü basit bir tarih sütununun yanı sıra masamdaki daha karmaşık bir özel biçimlendirilmiş sütuna sahibim. –

+3

Bunu bir XML görünümünden uygulamak istiyorsanız, bunu şu şekilde başarabilirsiniz: '' – mitch

1

Ben de biçimlendirici işlevini kullanarak numaralarını biçimlendirmek nasıl ekliyorum.

<template> = new sap.ui.commons.TextField().bindProperty("<value>",{ 
      path: "<GROSSVALUE>", 
      type: new sap.ui.model.type.Integer({ 
       maxIntegerDigits: 10, 
       minFractionDigits: 2, 
       maxFractionDigits: 2, 
       groupingEnabled: true, 
       groupingSeparator: ",", 
       decimalSeparator: "." 
      })});  
2

ayrıca standart modelin biçemleyicileri dikkate değer olabilir: sap.ui.model.type.DateTime ve sap.ui.model.type.Date

template: new sap.ui.commons.TextView().bindProperty("text", { 
    path: "DATE", 
    type: new sap.ui.model.type.DateTime, 
    formatOptions: { style: "medium" } 
}) 

XML örneği (hep kullanım XML olarak;)

<Text text="{path : 'runDateTime', 
      type : 'sap.ui.model.type.DateTime', 
      formatOptions: { style : 'medium'}}" /> 

UI5 kullanarak sık olduğu için Bir uygulama için standart bir görünüm uygulama hakkında bir konuşma, standart biçimlendirmeyi kullanarak yararlı olabilir Uyuşturucu ile Mücadele Dairesi.

İlgili konular