Bom dia, é possivel e se sim como faço, para chamar uma tela ou uma user function por um botão dentro de uma rotina?
seria criar um botão dentro da tabela de Preços > F11 e esse botão chamar a rotina Preços de Mercado
Bom dia, é possivel e se sim como faço, para chamar uma tela ou uma user function por um botão dentro de uma rotina?
seria criar um botão dentro da tabela de Preços > F11 e esse botão chamar a rotina Preços de Mercado
Andreas, para chamar outra função através do botão, basta especificar a função desejada no Action.
Exemplo:
// onde U_SUAFUNCAO() é a função que deseja chamar
@030, 600 Button oBtn1 Prompt 'Confirmar' Size 35, 15 Action (U_SUAFUNCAO()) Of Panel Pixel
Lembrando que se a função estiver em outro fonte (sem ser o atual da tela), ela precisa ser uma User Function para que você tenha acesso.
Opcionalmente, você pode colocar essa chamada tanto via botão ou via tecla do teclado, exemplo:
// dessa forma será executado tanto se o usuário clicar no botão ou se apertar F11
SetKey(VK_F11, { || U_SUAFUNCAO() })
@030, 600 Button oBtn1 Prompt 'Confirmar (F11)' Size 35, 15 Action (U_SUAFUNCAO()) Of Panel Pixel
Documentação SetKey: https://tdn.totvs.com/display/tec/SetKey
Mais informações sobre @...Button: https://solutio.inf.br/button/
Talvez terá que usar algum ponto de entrada, pois nao pode modificar o fonte padrão e neste ponto usará a função (nLastkey) ela gerá ações a partir de um botão escolhido. aiii chama a function desejada.
adicionei em uma outro comentario meu objetivo com imagens, se puder olhar porfavor
— Andreas 28 de Jul de 2023Olá Andreas, segue o PE OM010MNU responsável por adicionar novas opções no menu do fonte Omsa010, basta trocar o u_suaFuncao() e MsgInfo pela chamada do seu fonte.
Se resolver marca como resposta!
#INCLUDE "PROTHEUS.CH"
/*/{Protheus.doc} User Function OMSA010
(Este Ponto de Entrada permite incluir novas opções no array aRotina.
Ponto de Entrada disparado antes da abertura do Browser, caso o Browser inicial da rotina esteja habilitado, ou antes da apresentação do Menu de opções, caso o Browser inicial esteja desabilitado.)
@type Function
@author Leandro Lemos
@since 27/07/2023
@version P12
@param param_name, param_type, param_descr
@return return_var, return_type, return_description
@example
(examples)
@see (https://tdn.totvs.com/pages/releaseview.action?pageId=631314486)
/*/
User Function OM010MNU()
Private bFuncF11 := {||MsgInfo("Pressionou F11","F11")}
aadd(aRotina,{'Preços de Mercado','u_SuaFuncao()' , 0 , 3,0,NIL})
SETKEY(VK_F11,bFuncF11)
Return
Valeu, vai ser útil para mim tbm
— Lucas de Paulo Santos 27 de Jul de 2023bom dia, adicionei em uma outro comentario meu objetivo com imagens, se puder olhar porfavor
— Andreas 28 de Jul de 2023Criei um botão, da mesma forma do confirmar e o do cancelar, e queria que esse botão chamasse outro fonte ao clicar nele (fonte que o botão está, não é padrão e sim criado por nós, assim como o fonte a ser chamado)
como nas imagens a baixo(botao preços de mercado)