× Linguagem de Programação ADVPL

Perguntas Dúvida ao usar campo FT_FORMULA

Mais
10 anos 4 meses atrás #23469 por so-bmoraes
Boa tarde pessoal,

Criei a função abaixo para ser usada no campo FT_FORMULA, com intenção de trazer o registro C195 do SPED.
A função funcionou, porém traz sempre o valor da última nota.
Na chamada passo como parametros os campos FT_FILIAL, FT_TIPOMOV, FT_SERIE, FT_NFISCAL, FT_CLIFOR, FT_LOJA.
Alguém tem alguma dica?
Obrigada.
#INCLUDE "PROTHEUS.CH"
#INCLUDE "rwmake.ch"
#INCLUDE "TOPCONN.CH"

User Function FormulaC195(cFi1, cTPM1, cSER1, cNF1, cCF1, cLo1)
Local cMsg := ""
Local _aGetArea := GetArea()
Local cQuery1 := ""

cQuery1 := "SELECT SUM(FT_VALIPI) AS IPI, SUM(FT_ICMSRET) AS ICM "
cQuery1 += "FROM DB2ADMIN." + RetSqlName("SFT") + " SFT "
cQuery1 += "WHERE FT_FILIAL = '" + cFi1 + "' "
cQuery1 += "AND FT_TIPOMOV = '" + cTPM1 + "' "
cQuery1 += "AND FT_SERIE = '" + cSER1 + "' "
cQuery1 += "AND FT_NFISCAL = '" + cNF1 + "' "
cQuery1 += "AND FT_CLIEFOR = '" + cCF1 + "' "
cQuery1 += "AND FT_LOJA = '" + cLo1 + "' "
cQuery1 += "AND D_E_L_E_T_=' ' "
cQuery1 += "GROUP BY "
cQuery1 += "FT_FILIAL, FT_TIPOMOV, FT_SERIE, FT_NFISCAL, FT_CLIEFOR, FT_LOJA "

TCQUERY cQuery1 NEW ALIAS "QRY"
dbSelectArea( "QRY" )
QRY->( DBGOTOP() )

If !(QRY->(BOF()) .AND. QRY->(EOF()))
If QRY->IPI > 0
cMsg := "IPI: R$ " + LTrim( Str( QRY->IPI,15,2 ) ) + " / "
EndIf
If QRY->ICM > 0
cMsg := "ICMS-ST: R$ " + LTrim( Str( QRY->ICM,15,2 ) ) + " / "
EndIf
If Len( cMsg ) > 0
cMsg := Left( cMsg, Len( cMsg )-3 )
EndIf
EndIf
DbCloseArea("QRY")
RestArea( _aGetArea )
Return( cMsg )

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23899 por so-bmoraes
Respondido por so-bmoraes no tópico Dúvida ao usar campo FT_FORMULA
Bom dia,

Caso alguém precise:

No momento em que a fórmula é executada, não é a tabela SFT que está ativa, e sim um outro alias com a SFT filtrada. Para resolver isso, ao invés de usar a própria SFT, usamos o alias ativo:

pAliasSFT := (ALIAS())

Abçs
Sofia.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.122 segundos
Joomla templates by a4joomla