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
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
Olá 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
bom dia, adicionei em uma outro comentario meu objetivo com imagens, se puder olhar porfavor
Criei 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)
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
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/