Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

@fabiosantosrj

MSXML grava moeda no formato americano e não em português

Recommended Posts

Prezados,

 

Recentemente troquei de um servidor Win2003(EN) com MSXML4(PT) para um servidor Win2008(EN) com MSXML4(EN).

 

Porém, ao salvar os arquivos xml ele está gravando as moedas como 400.25 ao invés de 400,25 como era no win2003.

 

Como eu já verifiquei o session.locale(1046), configurações regionais(PT) e os itens acima já mencionados, eu imagino que o problema esteja por ser MSXML4(en).

 

Antes de desinstalar o MSXML4(en) e instalar o MSXML4(PT) eu gostaria de saber se existe algum tipo de configuração que eu possa tratar para ele gravar em PT?

 

O trecho que utilizo para gravar o conteúdo no xml é:

 

Set child = MsXml.createElement("preco")
child.Text = RS_Produto(2)
onode.appendChild(child)

Se eu mando exibir com o response.write o rs_produto(2) ele aparece como 400,25 , mas o child.text aparece como 400.25 .

 

Se eu trocar a linha abaixo:

child.Text = RS_Produto(2)

para:

 

child.Text = cstr(RS_Produto(2))

ele grava corretamente o 400,25. Porém, eu teria que varrer todo o meu código para saber onde grava xml com valores e assim realizar a correção.

 

Eu preciso saber como gravar o RS_Produto(2) no XML como 400,25 ao invés de 400.25 sem alterar uma linha de código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se já esta configurado o LCID e as config. reg. pode ser seu MSXML4(en), vc pode usar uma função assim tb. Para exibir dados do tipo moeda no formato Brasileiro:

 

Function FormataMoeda(valor)
sp = Mid(FormatNumber(1000, 0, -1, 0, -1),2,1)
sv = Mid(FormatNumber(0.1, 1, -1, 0, -1),2,1)
If isNumeric(valor) Then
v = FormatNumber (valor, 2, -1, 0, -1)
Else
v = FormatNumber (0, 2, -1, 0, -1)
End If
v = Replace(v, sp, "p")
v = Replace(v, sv, "v")
v = Replace(v, "p", ".")
v = Replace(v, "v", ",")
FormataMoeda = v
End Function

 

Response.Write FormataMoeda(objRS("valor"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom galera, eu não consegui instalar uma versao msxml em PT no windows 8. Então, acabei tendo que meter a mão no código mesmo e adaptando para tratar a moeda de EN para PT.

 

Obrigado xanburzu pela função comentada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.