Inquiridor
Problema em Campo Calculado

Pergunta
-
Boa tarde a todos,
Estou com o seguinte problema, estou desenvolvendo no SPD um relatório aonde quero apresentar ao usuário dois valores, o primeiro valor, é o total dos títulos de um cliente - aonde na lista este valor é monetário, usei somente o SUM, o outro valor é um campo calculado, aonde eu tenho um valor adquirido de uma fórmula, que é "juros+dias vencidos+valor do título", só que este valor não estou conseguindo apresentar de jeito nenhum. Aparece sempre NaN...??? Abaixo coloco o script de soma, e as linhas que apresento os valores para o XSLT.
-A linha que apresento o valor calculado, na coluna:
<xsl:value-of select="format-number(translate(substring-after(translate(@Valor_x0020_a_x0020_Pagar, ".",""), 'R$ '),",","."), "R$#.##0,00;-R$#.##0,00", "lcid1046")" /></td></tr>
- O script da soma
<xsl:template name="SomaTudo1">
<xsl:param name="node"/>
<xsl:param name="sum" select="0"/>
<xsl:choose>
<xsl:when test="$node">
<xsl:call-template name="SomaTudo1">
<xsl:with-param name="node" select="$node/following-sibling::Row"/>
<xsl:with-param name="sum" select="$sum + translate($node/@Valor_x0020_a_x0020_Pagar, ',.', '.')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="format-number($sum, "R$#.##0,00;-R$#.##0,00", 'lcid1046')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
- Aqui chamo a soma para ser apresentado o valor:
<xsl:call-template name="SomaTudo1">
<xsl:with-param name="node" select="/dsQueryResponse/Rows/Row"/>
</xsl:call-template>
O que pode estar errado, ou como posso desenvolver isso melhor...???
Aguardando respostas,
Emerson
Todas as Respostas
-
Emerson, Ja te ajudei em um caso semelhante a esse. O que acontece é a confusão de virgula e ponto na separação das casas decimais. tente usar format-number no lugar de translate. Att.
Abraço, Ivan Costa http://ivannw.spaces.live.com twitter: @ivannw -
Bom dia Ivan,
Este problema é parecido com aquele, mas o problema esta em como o banco esta trazendo os valores. Já tentei com format-number, já fiz testes com todas as possibilidades possíveis e nada. O que acontece é que, no valor principal do título, o banco me traz assim "123,56", somente assim, então fazendo o jogo das vírgulas, e fazendo apenas o translate ele funciona. Agora preciso fazer uma soma de um campo calculado, e ele me traz o valor do campo assim "R$ 123,56",ele me traz o R$ e usando o string-after não esta funcionando. Conforme o código acima, para uso o string-after para mostrar o valor formatado, conforme eu quero, agora para fazer a soma, ele não esta funcionando...??? O que posso fazer...???
Atenciosamente,
Emerson -
Tenta fazer o campo calculado retornar um numero, pelo que parece ele esta retornando moeda.
caso você realmente precise de moeda por conta do R$ crie um segundo campo calculado com o valor do primeiro mas retornando numero.
Abraço, Ivan Costa http://ivannw.spaces.live.com twitter: @ivannw- Sugerido como Resposta Ivan C OliveiraMicrosoft employee quinta-feira, 4 de março de 2010 18:51
-
Bom dia Ivan,
Usei uma solução que poderíamos chamar de Solução Caseira, criei um campo chamado Pagamento, que recebe os valores deste campo calculado, e fiz com que este campo Pagamento fosse número. Pronto funcionou, mas deixei a lista maior. Gostaria de solucionar o problema na coluna que estava dando problema, mas como tempo é dinheiro, e a solução funcionou, esta tudo certo. Mais uma vez Obrigado.
Atenciosamente,
Emerson -