Olá pessoal…
Hoje vou mostrar como mostrar o help de campos (F1) em GETs customizados em Dialogs customizadas em AdvPL.
Primeiramente pessoal, devemos utilizar o método bHelp do MsGet, depois utilizamos a função ShowHelpCpo, sendo que o primeiro parâmetro representa a Ajuda, e o segundo a Validação. Abaixo o exemplo:
oGetNor:bHelp := {|| ShowHelpCpo( "cGetNor",;
{"Texto Linha 1"+STR_PULA+"Texto Linha 2"},2,;
{"Solução Linha 1"},2)}
Abaixo um print do exemplo acima:
Agora, caso queira pegar o help de um campo padrão (que exista no dicionário – SX3), utilize a função GetHlpSoluc, no exemplo abaixo, eu utilizo o B1_COD (Código do Produto):
oGetBD:bHelp := {|| ShowHelpCpo( "cGetBD",;
{GetHlpSoluc("B1_COD")[1]},2,;
{GetHlpSoluc("B1_COD")[2]},2)}
Abaixo um print do exemplo acima:
Abaixo o exemplo completo do fonte utilizado:
//Bibliotecas
#Include "Protheus.ch"
//Bibliotecas
#Define STR_PULA Chr(13)+Chr(10)
/*/{Protheus.doc} zExempF1
Exemplo de help (F1) em Gets customizados
@type function
@author Atilio
@since 27/10/2015
@version 1.0
@example
u_zExempF1()
/*/
User Function zExempF1()
Local aArea := GetArea()
//Dimensões da janela
Local nJanAltu := 080
Local nJanLarg := 220
//Objetos da janela
Private oSayNor, oGetNor, cGetNor := Space(10)
Private oSayBD, oGetBD, cGetBD := Space(10)
Private oDlgPvt
//Criando a janela
DEFINE MSDIALOG oDlgPvt TITLE "Janela" FROM 000, 000 TO nJanAltu, nJanLarg COLORS 0, 16777215 PIXEL
//Get Normal
@ 006, 006 SAY oSayNor PROMPT "Normal:" SIZE 050, 007 OF oDlgPvt PIXEL
@ 003, 060 MSGET oGetNor VAR cGetNor SIZE 040, 010 OF oDlgPvt PIXEL
oGetNor:bHelp := {|| ShowHelpCpo( "cGetNor",;
{"Texto Linha 1"+STR_PULA+"Texto Linha 2"},2,;
{"Solução Linha 1"},2)}
//Get Banco
@ 026, 006 SAY oSayBD PROMPT "BD:" SIZE 050, 007 OF oDlgPvt PIXEL
@ 023, 060 MSGET oGetBD VAR cGetBD SIZE 040, 010 OF oDlgPvt PIXEL
oGetBD:bHelp := {|| ShowHelpCpo( "cGetBD",;
{GetHlpSoluc("B1_COD")[1]},2,;
{GetHlpSoluc("B1_COD")[2]},2)}
ACTIVATE MSDIALOG oDlgPvt CENTERED
RestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.

