Ir para conteúdo

Arquivado

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

FabianoSouza

Function para tratar valor nulo com FormatCurrency

Recommended Posts

Tenho um campo para exibir valores. Às vezes há valor para ser exibido, às vezes não há.

Para colocar no formato R$0,00, faço assim:

 <%=FormatCurrency(recordset("meu_campo"),2)%>

Isso funciona. Mas o problema é quando o valor é nulo. Aí dá erro.

 

Estou tentando criar uma function resolver isso.

Dim valor
Function globaliza_moeda(valor)
If valor <> 0 Then
valor = FormatCurrency((valor),2)
Else
valor = ("0,00")
End if
End Function 

E chamo assim

<%=globaliza_moeda(rs("meu_campo"))%>

Isso não está funcionando.

Solicito ajuda.

 

Brigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

<%
Dim valor 
Set valor = dados.Execute("SELECT valor FROM Tabela ")
      
If valor.EOF = False Then   

valor = FormatCurrency((valor),2)

Else 
	
Response.Write "0,00"		

End If 

valor.Close
Set valor = Nothing
%>

Veja se ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

<%
Dim valor 
Set valor = dados.Execute("SELECT valor FROM Tabela ")
      
If valor.EOF = False Then   

valor = FormatCurrency((valor),2)

Else 
	
Response.Write "0,00"		

End If 

valor.Close
Set valor = Nothing
%>

Veja se ajuda.

Hmm. Não vai dar certo pq mesmo se havendo registro no Recordset, o campo poderá estar em branco (nulo) e ocorrerá o mesmo erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fabiano,

 

EXEMPLO 01 :

<%
Dim listar_valor
Set listar_valor = dados.Execute("SELECT valor FROM Tabela ")

If listar_valor("valor") <> "" Then 

Response.Write(FormatCurrency(listar_valor("valor"),2))
	
Else

Response.Write "0,00"

End If

listar_valor.Close
Set listar_valor = Nothing
%>

Fiz o teste aqui e funcionou,

 

Se o Campo Valor, conter é Mostrado, se for NULO exibe o "0,00"

 

******************************************************************************************************

 

EXEMPLO 02 :

 

Neste exemplo ele lista todos os registros encontrados, um abaixo do outro.

 

Caso tenha VALOR, será exibido.

 

Caso o Campo for NULO, será mostrado "0,00"

<%
Dim listar_valor
Set listar_valor = dados.Execute("SELECT valor FROM Tabela ")

While Not listar_valor.EOF

If listar_valor("valor") <> "" Then

Response.Write(FormatCurrency(listar_valor("valor"),2))

Response.Write "<br>"

Else

Response.Write "0,00"

Response.Write "<br>"

End If

listar_valor.MoveNext
Wend

listar_valor.Close
Set listar_valor = Nothing
%>

Espero que ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou pode usar o IsNull, lembrando Null é diferente de Empty

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fabiano,

 

EXEMPLO 01 :

<%
Dim listar_valor
Set listar_valor = dados.Execute("SELECT valor FROM Tabela ")

If listar_valor("valor") <> "" Then 

Response.Write(FormatCurrency(listar_valor("valor"),2))
	
Else

Response.Write "0,00"

End If

listar_valor.Close
Set listar_valor = Nothing
%>

Fiz o teste aqui e funcionou,

 

Se o Campo Valor, conter é Mostrado, se for NULO exibe o "0,00"

 

******************************************************************************************************

 

EXEMPLO 02 :

 

Neste exemplo ele lista todos os registros encontrados, um abaixo do outro.

 

Caso tenha VALOR, será exibido.

 

Caso o Campo for NULO, será mostrado "0,00"

<%
Dim listar_valor
Set listar_valor = dados.Execute("SELECT valor FROM Tabela ")

While Not listar_valor.EOF

If listar_valor("valor") <> "" Then

Response.Write(FormatCurrency(listar_valor("valor"),2))

Response.Write "<br>"

Else

Response.Write "0,00"

Response.Write "<br>"

End If

listar_valor.MoveNext
Wend

listar_valor.Close
Set listar_valor = Nothing
%>

Espero que ajude.

 

Olá Wilnet.

Ao que parece, desta forma vou ficar dependente do recordset, né? Meu objetivo é criar algo "global", que dê para reutilizar.

Mas vou fazer uns testes aqui... Acho que vai me quebrar um galho.

 

Desde já agradeço muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é uma verificação simples, um if realmente como sugerido pelo nosso amigo

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.