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.