Retornar um array com o nome da moeda e de sua respectiva taxa


A função fRMoeda foi criada para retornar um array com o nome da moeda e de sua respectiva taxa Função fRMoeda

/*
+------------------+---------------------------------------------------------+
!Modulo            ! Diversos                                                !
+------------------+---------------------------------------------------------+
!Nome              ! fRMoeda                                                 !
+------------------+---------------------------------------------------------+
!Descricao         ! Função para retornar a descricao e o valor da taxa da   !
!                  ! moeda informada                                         !
+------------------+---------------------------------------------------------+
!Data de Criacao   ! 03/01/2011                                              !
+------------------+---------------------------------------------------------+
*/
User Function fRMoeda(nMoeda)
    Local nValor  := 1
    Local aMoedas := {}
    Local aRetorno:= {}
    Local nCodMoe := 0
    Local lAchou  := .F.
    Local i       
    Local oError := ErrorBlock({|e|MsgAlert("Mensagem de Erro: " +chr(10)+ e:Description)})                 
    
    aMoedas := StrTokArr(GvGetMoedas(),";")                          
    
    Begin Sequence      
        For i := 1 to len(aMoedas)
            nCodMoe  := Int(Val(Substr(Alltrim(aMoedas[i]),1,1)))
            if(nCodMoe==nMoeda)
                aadd(aRetorno,{Substr(aMoedas[i],at("=",aMoedas[i])+1,10),RecMoeda(dDataBase,StrZero(nMoeda,2))})
                lAchou := .T.
                exit
            Endif
        Next    
    
        if lAchou==.F.
            aadd(aRetorno,{"MOEDA INEXISTENTE",0.00})
        Endif
    End Sequence

    ErrorBlock(oError)
    
Return(aRetorno)

//Usando a função
#Include "protheus.ch"
User Function ftmoeda(nMoeda)
    Local cDescri := ""
    Local nTaxa   := 0
    
    aRetorno:= U_fRMoeda(nMoeda)    
    cDescri := aRetorno[1,1]
    nTaxa   := iif(Empty(aRetorno[1,2]),0,aRetorno[1,2])

    MsgInfo("Moeda: " + cDescri + " - Taxa: " + Transform(nTaxa,PesqPict("SM2","M2_MOEDA1")))   
Return