Estou desenvolvendo um PE FC010LIST que mostre o total do saldo dos titulos em aberto, usando a função SaldoTit() está retornando um valor muito alto ou seja inconsistente. Alguem tem modelo para passar os parametros do SALDOTIT dos dados do SE1 ?
Estou desenvolvendo um PE FC010LIST que mostre o total do saldo dos titulos em aberto, usando a função SaldoTit() está retornando um valor muito alto ou seja inconsistente. Alguem tem modelo para passar os parametros do SALDOTIT dos dados do SE1 ?
Boa tarde, unica coisa que precisa nessa rotina é passar todos os campos conforme o documento: https://tdn.totvs.com/pages/releaseview.action?pageId=6070756
Eu aconselho a não usar nenhum tipo de trim para usar essa função e todos as variaveis que você passar ter o mesmo tamanho do campo na sx3.
Exemplo: E2_PREFIXO = "1 "
Para garantir que a função não faça a busca incorretamente.
Staticfunction SaldoTit()
Local nSaldo
dbSelectArea('SE2')
dbsetorder(1)
dbSeek(xFilial('SE2')+"1 "+"00000027",.f.)//PREFIXO+NUM
nSaldo := SaldoTit(SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_NATUREZ,"P",SE2->E2_FORNECE,1,,,SE2->E2_LOJA,,0/*nTxMoeda*/)
Alert(nSaldo)
return
Exemplo na SE1 para testar, aconselho a usar um dbgoto(RECNO) para saber se está certo
/*/{Protheus.doc} User Function TESTSLD
(long_description)
@type Function
@author user
@since 04/09/2020
@version version
@param param_name, param_type, param_descr
@return return_var, return_type, return_description
@example
(examples)
@see (links_or_references)
/*/
User Function TESTSLD()
dbSelectArea('SE1')
dbgoto(123769)//informa o recno para ter certeza
nSaldo := SaldoTit(SE1->E1_PREFIXO,SE1->E1_NUM,SE1->E1_PARCELA,SE1->E1_TIPO,SE1->E1_NATUREZ,"R",SE1->E1_CLIENTE,1,,,SE1->E1_LOJA,,0/*nTxMoeda*/)
Alert(nSaldo) //resultado precisa ser o seu saldo igual ao que você vai no baixar...
dbCloseArea('SE1')
Return
@Maike obrigado pelo retorno, estou utilizando todos os parâmetros e mesmo assim está com o valor incorreto. Por acaso vc tem um modelo utilizando dados de cliente "R" ? Caso positivo, vai me ajudar muito
— Ricardo P.Lopes 03 de Sep de 2020@Ricardo P.Lopes Eu não tenho nenhum exemplo que eu uso, mas editei a resposta e coloquei um código de teste que fiz na minha base de teste e o retorno está correto. Valida se te ajudar, abraços!
— Maike Ramos de Oliveira 04 de Sep de 2020@Maike Ramos de Oliveira, Bom dia!! O teste que estou fazendo são titulos não baixados, vc realizou testes com titulos baixados ?
— Ricardo P.Lopes 04 de Sep de 2020Não, para você entender o teórico dessa função é: trazer o mesmo saldo que é apresentado ao baixar um titulo. Para saber se o saldo está correto independente se o titulo está sem baixa ou parcialmente baixado.
Para testar sua função pegue seu titulo que buscou saldo errado acesse a rotina de baixa a receber e clique em baixa manual e valide o valor apresentado. Na sua função você precisa estar posicionado no registro que vai analisar, então valide se está posicionado corretamente e depois rode a função e analise se o saldo apresentado é igual ao que você testo na rotina de baixa a receber.
— Maike Ramos de Oliveira 04 de Sep de 2020@Maike, estou simulando em unico registro do SE2 igual da 1a amostra que vc citou acima, retornou 0.. ta muito estranho
— Ricardo P.Lopes 04 de Sep de 2020É deveria trazer o mesmo valor que é apresentado no titulo sem baixa ou parcialmente. Está apresentando por exemplo 6.400 e deveria ser 3.665. Vou tentar fazer outros parâmetros. Obrigado !
Já tive problemas com isso e o SE5 do título estava com problemas na sequencia da baixa (E5_SEQ). Estava quase tudo seg 001, e como o título tinha muita baixa e estornos, tudo dava na mesma seq e então esse cara não contava como baixa. Verifique o E5_SEQ desses titulos.
Pessoal, já foi resolvido. O Problema era a chamada do SaldoTit com campos da query, isso não funciona. Utilizei DbSeek do SE1 e funcionou perfeitamente. Obrigado!
— Ricardo P.Lopes 09 de Sep de 2020