Olá,
No grid quando recupero o valor do xml no datapath, ao invés de somente mostrar para o usuário o valor como ele vem do banco, eu gostaria de formatar o valor, como por exemplo:
Mostro no grid um campo float, o valor vem assim: “1500.0”
eu tenho um método que formata este valor e mostra assim: “1.500.00”
Então gostaria de saber como fazer isto.
Desde já agradeço a atenção
Acho que você pode utilizar o evento oninit e formatar os dados com JavaScipt. Por exemplo, ao carregar uma Window eu formato a data da seguinte forma:
[code]<method event="oninit">
<![CDATA[
var hoje = new Date();
var dia = hoje.getDate();
var mes = hoje.getMonth() + 1;
var ano = hoje.getFullYear();
var data = dia + "/" + mes + "/" + ano;
this.diaText.setAttribute("text", data);
]]>
</method>[/code]
Espero que te ajude em algo!
Pois é Guilherme, tentei fazer algo parecido, mas como eu pego o valor do datapath?
De uma olhada no código que eu fiz:
Em nenhuma das opções eu concegui resolver o problema
<gridcolumn width="100" fontstyle="bold">
Saldo da Conta
<text datapath="@saldo" ondblclick="classroot.alterar()">
<method event="oninit">
<![CDATA[
Debug.write(this.datapath);
Debug.write(this.datapath.data);
Debug.write(this.datapath.xpath);
Debug.write(this.datapath.xpath.data);
Debug.write(this.datapath.xpath.data());
Debug.write(this.datapath.xpath.data));
]]>
</method>
</gridcolumn>
Alguém mais poderia me sugerir outra solução
Bom dia Pessoal,
Ainda não consegui resolver o meu problema, será que alguém tem como me ajudar…
kra tenta fazer assim, tem uma propriedade datatype=“number” coloca ela no gridcolumn
<gridcolumn width="90" text="Total" datatype="number">
<view width="${ parent.width }">
<text x="${parent.parent.width - (this.getTextWidth()+10)}" y="3" datapath="@valorTotal"/>
</view>
</gridcolumn>
Bom pessoal, só para esclarecer que eu consegui resolver o problema, vou postar o código da solução:
<!-- Evento executado sempre no retorno de dados do servidor PARA FORMATAR O GRID -->
<method event="ondata" reference="dsSearchCompra">
<![CDATA[
var lista = dsSearchCompra.getFirstChild().getFirstChild();
for( var i=0; i< lista.childNodes.length; i++){
//************ FORMATA O VALOR FLOAT **************
//formatFloatSet é uma função para formatar valores float
lista.childNodes[i].setAttr('vlCompra', canvas.formatFloatSet(lista.childNodes[i].getAttr('vlCompra')));
//************ FORMATA O VALOR DATA **************
// Mostra somente dd/mm/yyyy e retira a data
lista.childNodes[i].setAttr('dtCompra', lista.childNodes[i].getAttr('dtCompra').substring(0,10));
}
]]>
</method>