Versão atual:

Ajustar a formatação de Campos com decimais

Olá Pessoal, tenho dois campos em uma Grid , que ao retornar valores do BD os valores decimais ficam no formato errado. Esse retorno no BD é uma Desserialização onde depois faço um Set para o objeto.

Tentei usar o Transform na definição do meu objeto que apresenta na Grid. E também diretamente na função que apresenta os dados na Grid (LoadGrid).

Definição do Objeto:

Method getObjParsed() class NFLDataObjHistoryManagement
    Local aXML             := {} as Array
    Local aArrayObjParsed  := {} as Array
    Local nAtual           := 1     as Numeric
    Local oDefineItemNF    as Object 
    Local oObjParsed       := ::oObjParsed

    Local nValorUnit   := 0   // TESTEs
    Local nValorTotal  := 0   // TESTEs


    aXML := oObjParsed:_NFLNFEENTITY:_AITENSNF:_NFLNFEITEMENTITY

    For nAtual := 1 To Len(aXML)

        oDefineItemNF := NFLNFEItemEntity():New()//--> Chama método da Classe NFLNFEEntity

        oDefineItemNF:setCHAVE(aXML[nAtual]:_CCHAVE:Text)
        oDefineItemNF:setITEM(aXML[nAtual]:_NITEM:Text)
        oDefineItemNF:setCODFOR(aXML[nAtual]:_CCODFOR:Text)
        oDefineItemNF:setDescricao(aXML[nAtual]:_CDESCRI:Text)
                oDefineItemNF:setProdProtheus(aXML[nAtual]:_CPRODUTO:Text)
        oDefineItemNF:setDescProdProtheus(aXML[nAtual]:_CDESCPRODUTO:Text)

        oDefineItemNF:setNCM(aXML[nAtual]:_CNCM:Text)
        oDefineItemNF:setCFOP(aXML[nAtual]:_CCFOP:Text)
        oDefineItemNF:setUnidMed(aXML[nAtual]:_CUNIDADE_MEDIDA:Text)


        nValorUnit  :=  aXML[nAtual]:_NVALOR_UNIDADE:Text
        nValorTotal :=  aXML[nAtual]:_NVALOR_TOTAL:Text

        Transform(nValorUnit, "@E 99,999,999,999.99") 
        Transform(nValorTotal,"@E 99,999,999,999.99") 

        oDefineItemNF:setValorUnid(nValorUnit)
        oDefineItemNF:setValorTotal(nValorTotal)


        //oDefineItemNF:setQuantItem(aXML[nAtual]:_NQUANT_ITENS:Text)
        //oDefineItemNF:setValorUnid(aXML[nAtual]:_NVALOR_UNIDADE:Text)
        //oDefineItemNF:setValorTotal(aXML[nAtual]:_NVALOR_TOTAL:Text)

        oDefineItemNF:setCodFCI(aXML[nAtual]:_NCOD_FCI:Text)
        oDefineItemNF:setPedido(aXML[nAtual]:_CPEDIDO:Text)

        Aadd(aArrayObjParsed, oDefineItemNF)
    Next nAtual

return(aArrayObjParsed)//::oObjParsed

Função responsável por apresentar na tela(LoadGrid)

Static Function loadGrid(oGridModel, lCopy)
    Local nX           := 1
    Local aLoad          := {}
    Local cItem          := ""
    Local cCodFor     := ""
    Local cDescFor    := ""
    Local cUnidMed    := ""
    Local cQuantItem  := ""
    Local cValorUnid  := ""
    Local cValorTotal := ""
    Local cProduto    := ""
    Local cDescProd   := ""

    //Local aItensNFL := oNfeEntity//:getItem()    // Entidade NF-e, Retorna o Array dos ITENS
    Local oItemNF     := NFLNFEItemEntity():New()  // Classe Item da Nota


    For nX := 1 to len(aItensNFL)
        oItemNF := aItensNFL[nX]

        cItem       := oItemNF:getITEM()
        cCodFor        := oItemNF:getCODFOR()
        cDescFor    := oItemNF:getDescricao()
        cUnidMed    := oItemNF:getUnidMed()
        cQuantItem    := oItemNF:getQuantItem()
        cValorUnid    := oItemNF:getValorUnid()   
        cValorTotal    := oItemNF:getValorTotal()  
        cProduto    := oItemNF:getProdProtheus()
        cDescProd    := oItemNF:getDescProdProtheus()
        cPedido        := oItemNF:getPedido()
        // . Get dos itens da nota...

        //Ord.    Descrição
        aAdd(aLoad,        {;   //Array com os dados, os dados devem seguir exatamente a mesma ordem da estrutura de dados
        0              ,;   //[n][1] ExpN: Id do registro (RecNo) -> Valor lógico indicando se é uma operação de cópia.
        {"BR_VERDE"    ,;  //[00] Legenda
        AllTrim(cItem)    ,;  //[01] Item NF
        AllTrim(cCodFor)+" - "+AllTrim(cDescFor) ,;//[02]    Código Produto Fornecedor
        cProduto    ,;  //[03] Produto Protheus
        cDescProd    ,;  //[04] Descrição
        cQuantItem    ,;  //[05] Quantidade Item XML
        cValorUnid    ,;  //[06] Valor Unitário  
        cValorTotal     ,;  //[07] Valor Total      
        cPedido        ,;  //[08] Pedido
        ""            ,;  //[09] Item do Pedido
        ""         ,; //[10] Item do Pedido
        "" }})             //[11] Item XML

    Next nX

Return aLoad

queria saber se trato isso onde apresento os dados ou na definição do Objeto.

Inseri uma Imagem de como está os dados nos campos.

Campos Grid.png

Versão (1):

Ver a versão formatada

Ajustar a formatação de Campos com decimais

Comentário

new question