Imprimi Página | Fechar janela

RELATORIO TRPORT

Impresso de: Helpfacil - Portal do conhecimento
Nome do Forum: ADVPL
Descrição do Forum: Dúvidas sobre a programação em ADVPL
URL:http://www.helpfacil.com.br/display_topic_threads.asp?ForumID=1&TopicID=41995
Data da Impressão: sexta-feira, 19 de abril de 2024 at 07:18


Topico: RELATORIO TRPORT

Postado por: WILLIAN_CA
Assunto: RELATORIO TRPORT
Data Postagem: quinta-feira, 14 de junho de 2018 at 14:30

Estou tentando gerar um relatório pra acompanhar os contratos que estão no protheus e em um segundo sistema tenho acesso a segunda base fiz um linked server, fiz as devidas conexoes via advpl porem o prtheus acusa que o alias que criei pro banco externo é invalido mesmo quando uso cAlias alguem pode me ajudar


Respostas:

Postado Por: WILLIAN_CA
Data Postagem: quinta-feira, 14 de junho de 2018 at 14:43

Segue o fonte com o codigo que eu fiz



Postado Por: WALTERFCAR
Data Postagem: sexta-feira, 15 de junho de 2018 at 09:44

roda,desde que nas consultas vc coloque o caminho completo do server
ex: se criou um linked seerver chamado LS uma query n SB1 ficaria assim:

select * from [LS].dbo.SB1010


importante, testa no managment studio, usando o mesmo login q vc usa no protheus.



Postado Por: WILLIAN_CA
Data Postagem: sexta-feira, 15 de junho de 2018 at 13:33

MAS APARENTEMENTE NÃO ESTOU COM PROBLEMAS NA QUERY MAS QUANDO CHAMA O ALIAS

DEFINE CELL NAME "MW_FILIAL" OF oSection1 TITLE "MW_FILIAL"               BLOCK{||MW->FILIAL}
          



Postado Por: VRTN
Data Postagem: sexta-feira, 15 de junho de 2018 at 14:53

Se o nome da célula é o mesmo do campo da query, até onde eu sei, o comando BLOCK é desnecessário.
Verifique no debug se você consegue acessar os valores do alias MW.



Everton Alves



Postado Por: WALTERFCAR
Data Postagem: sexta-feira, 15 de junho de 2018 at 16:52

seria bom ver que erro dá, de toda maneira nao conheço esse campo



Postado Por: WILLIAN_CA
Data Postagem: segunda-feira, 18 de junho de 2018 at 09:13

Esse campo é do banco externo o erro que me aparece é que o alias que estou usando não existe



Postado Por: JALBERTO
Data Postagem: segunda-feira, 18 de junho de 2018 at 11:46

Tem algumas coisas que estão erradas na tua conexão mas antes disso tens que ver se no DbAccess tu "enxerga" esse outro Banco pois se lá não estiver configurado então tu não poderá conectar via ADVPL, seguem as alterações no código que sugiro que faça.

// Cria uma conexão com um outro banco, outro DBAcces
// http://tdn.totvs.com/display/tec/TCLink
nHndOra := TcLink( cDbOra, cSrvOra, 7890 )

If nHndOra > 0
   
   // Seta a conexão com o novo banco
   // http://tdn.totvs.com/display/tec/TCSetConn
   TCSetConn( nHndOra )
   
   // Funções de impressão do relatório
   ...
   ...

   oSection1:print()
   oReport:Skipline()

Else
   Alert( "Não foi possível conectar no Banco Externo, verifique as permissões !"
EndIf

//Fecha a conexão com o MUNDI WARE
TcUnlink( nHndOra )

//Volta para conexão ERP
tcSetConn( nHndERP )


Jorge Alberto




Postado Por: EMERSON.EN
Data Postagem: segunda-feira, 18 de junho de 2018 at 11:56

veja esta linha:

          DEFINE CELL NAME "MW_FILIAL"               OF oSection1 TITLE "MW_FILIAL"               BLOCK{||(cAlias)->MW_FILIAL}

Note que vocÊ está usando (cAlias)->MW_FILIAL, porém o resultset em cAlias não contém o campo MW_FILIAL. Acredito que ali deveria ser (MW)->MW_FILIAL

Há possivelmente outras inconsistências quando se trata do resultset de cAlias: a existência dos campos NUM_TITULO ou CONTRATO dependem de uma condição, e a mesma condição não está sendo avaliada na impressão do relatório.




Postado Por: WILLIAN_CA
Data Postagem: segunda-feira, 18 de junho de 2018 at 14:36

Estou com esse problema já testei meu linked server e está funcionando quando faço uma query pelo banco do protheus
esse é o erro que o protheus retorna

THREAD ERROR ([9656], User, DESKTOP)   18/06/2018 14:25:48
: Error : 7202 (37000) (RC=-1) - [Microsoft][SQL Server Native Client 11.0][SQL Server]Could not find server ‘192.168.0.185‘ in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers. ( From tMSSQLConnection::GetQueryFile )




Imprimir Página | Fechar Janela