Bom dia galera, sobre o Treports, quando há mais de um provedor de dados, é possível escolher a conexão do relatório quando a chamada ocorre pelo menu do Protheus?
Bom dia galera, sobre o Treports, quando há mais de um provedor de dados, é possível escolher a conexão do relatório quando a chamada ocorre pelo menu do Protheus?
Olá William bom dia, Não há como interagir com a geração do relatório a partir do menu do Protheus. O relatório é exibido com suas definições padrões de filtro, parâmetros e provedores.
Mais uma coisa, o menu do Protheus só pede a execução do relatório ao TReports e as opções depois disso são recursos que o próprio TReports permite. Estou comentando isso por que nunca vi no TReports a opção de "escolher o provedor" para a geração de um relatório.
Já tentou utilizar o TcLink() ? já fiz um relatório uma vez que precisava chamar dados de outra base. Obs.: Utilizei no 12.1.17, não sei se nas versões mais atuais irá ter o mesmo comportamento.
user function FFINR01B()
Local oReport local cDB := "MSSQL/" + ALLTRIM(MV_PAR11) // alterar o alias/P12_PRD para o banco/conexão que está utilizando local cSrv := "192.168.0.201" // alterar para o ip do DbAccess private cPerg := 'RELINADI' Private cCliAnt Private cLojaAnt Private cTitulo Private cCliente Private cLoja Private cPrefixo Private cParcela
nHwnd := TCLink(cDB, cSrv, 7890) // FAÇO A CONEXAO NA BASE TESTE AjusPerg(cPerg) Pergunte(cPerg,.T.) oReport := V002(cPerg) oReport:PrintDialog()
// depois de gerado o relatorio voce fecha esse segunda conexão e o protheus continua utilizando a principalTCUNLink()
Return
você abre as perguntas antes e seta a base.
u_CriaPerg(cPerg,"11","Base Dados ?" ,"MV_PAR11", "MV_CHB", "C", 30, 0, "G", cValid,"" , cPicture,cDef01, cDef02, cDef03, cDef04, cDef05, "Informe a Base Dados")
segue documentação do tclink.
https://tdn.totvs.com/display/tec/TCLink
Lembrando que as querys irão pegar os dados dessa segunda conexão aberta, e não mais da principal. ou seja você só consegue utilizar uma por vez, ou então você pode fazer várias chamadas no relatório e ir guardando os dados em variáveis. não aconselho fazer isso em relatórios que tragam muitas informações devido a lentidão do tclink, mas para casos de montar um recibo ou algo mais simples dá pra fazer.