Olá pessoal
Esta vez trouxe uma dica para quem está precisando abrir uma página dentro do protheus, a classe TWebEngine pode nos ajudar, abaixo no exemplo como executar a mesma, ainda é possivel usar webSockets para enviar e receber informações a página
Documentação oficial da função aqui.
aixo o código fonte, a rotina é bem simples basta compilar e executar para ver um exemplo.
#INCLUDE "TOTVS.CH"
#INCLUDE "RWMAKE.CH"
/*/{Protheus.doc} SPWEBENG
Função SPWEBENG exemplo de uso da classe TWebEngine
@param Não recebe parâmetros
@return Não retorna nada
@author Rafael Goncalves
@owner sempreju.com.br
@version Protheus 12
@since Oct|2020
/*/
User Function SPWEBENG()
If (aLLTRIM(FwRetIdiom()) =='en-us')
U_OpenPage('https://www.totvs.com/','TOTVS')
Else
U_OpenPage('https://sempreju.com.br','Sempreju')
Endif
Return
User Function OpenPage(cUrl,cTitle)
Local oModal
Local aSize := {}
Local aObjects := {}
Local aInfo := {} // Obt?m a a ?rea de trabalho e tamanho da dialog
Local nPort := 0
PRIVATE oWebChannel := TWebChannel():New()
PRIVATE oWebEngine
DEFAULT cUrl := "https://sempreju.com.br"
DEFAULT cTitle := cUrl
DEFAULT cRootPath := "/"
aSize := MsAdvSize()
AAdd( aObjects, { 100, 100, .T., .T. } ) // Dados da Enchoice
// Dados da ?rea de trabalho e separa??o
aInfo := { aSize[ 1 ], aSize[ 2 ], aSize[ 3 ], aSize[ 4 ], 3, 3 }
aPosObj := MsObjSize( aInfo, aObjects,.T.)
DEFINE MSDIALOG oModal TITLE cTitle From aSize[7],0 To aSize[6],aSize[5] of oMainWnd PIXEL // Usar sempre PIXEL !!!
nPort := oWebChannel::connect()
oWebEngine := TWebEngine():New(oModal, 0, 0, 100, 100,, nPort)
//oWebEngine:cLang := FwRetIdiom() Only in smartclient higher than 19.3.1.0
oWebEngine:bLoadFinished := {|self,url| conout("Fim do carregamento da pagina " + url) }
oWebEngine:navigate(cUrl)
oWebEngine:Align := CONTROL_ALIGN_ALLCLIENT
ACTIVATE DIALOG oModal CENTERED
Return
O código fonte desse e outros exemplos podem ser encontrados em nosso git.
Post interessantes:
Ponto de entrada ao acessar o sistema aqui.
Aprenda a instalar o Protheus no Windows aqui.
Aprenda a instalar o Protheus no Linux aqui.
Retornar datas por extenso aqui.
Barras de progresso aqui.
Dúvidas e sugestões, entre em contato.
Obrigado e até a próxima!
0 comentário