- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Dúvida ao usar campo FT_FORMULA
×
Linguagem de Programação ADVPL
Perguntas Dúvida ao usar campo FT_FORMULA
- so-bmoraes
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 57
- Obrigados Recebidos: 0
10 anos 4 meses atrás #23469
por so-bmoraes
Dúvida ao usar campo FT_FORMULA foi criado 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 )
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.
- so-bmoraes
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 57
- Obrigados Recebidos: 0
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.
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Dúvida ao usar campo FT_FORMULA
Tempo para a criação da página:0.122 segundos