Pessoal, vou demonstrar nesse post como é possivel incluir Help(tecla F1) em Get ou Tget em nossas dialog, e tambem como usar o PlaceHold (sugestão de preenchimento) de campo.
Para adicioinar help em campos Get ou Tget é muito simples, precisamos apenas definir conteudo para o codeblock bHelp de nossos objetos, como o trecho abaixo:
//Help texto personalizado @ 006, 006 SAY oSayNor PROMPT "Personalizado:" SIZE 100, 007 OF oDlg PIXEL @ 003, 060 MSGET oGetNor VAR cPerson SIZE 100, 010 OF oDlg PIXEL oGetNor:bHelp := {||ShowHelpCpo("personalizado",; {"Texto Linha 1"+ENTER+"Texto Linha 2"},2,; {"Solução Linha 1"},2)}
Para adicioinar o PlaceHold em campos Get ou Tget é muito simples, precisamos apenas definir conteudo para o codeblock bHelp de nossos objetos, como o trecho abaixo:
cPlaceHold := "Place Hold Exemplo com Help" oTGet1 := TGet():New( 053,01, bSetGet( cPlaceHold ),oDlg, 250,009,"",/* [ bValid ]*/,/**nClrFore */,/**nClrBack */,/**oFont */,/**uParam12 */,/**uParam13 */, .t.,/**uParam15 */,/**uParam16 */, {|| .T.},/*uParam18*/ ,/**uParam19 */, /*bChange*/, /* lReadOnly */, /* lPassword */, /* uParam23 */, /* cReadVar */, /* uParam25 */, /* uParam26 */, /* uParam27 */, /* lHasButton */, /* lNoButton */, /* uParam30 */, "Ajuda de preenchimento - F1 para ver help"/* cLabelText */, 1/* nLabelPos */, /* oLabelFont */, /* nLabelColor */, /* cPlaceHold */, /* lPicturePriority */, /* lFocSel */ ) oTGet1:bHelp := {||ShowHelpCpo("cPerson",; {"Texto Linha 1"+ENTER+"Texto Linha 2"},2,; {"Solução Linha 1"},2)} //Nesse exemplo temos o help ao pressional F1 e a sugestão de preenchimento com conteudo: Ajuda de preenchimento - F1 para ver help
O código completo pode ser encontrato abaixou.
#INCLUDE "TOTVS.CH" #INCLUDE "RWMAKE.CH" #INCLUDE "TOPCONN.CH" #Define ENTER Chr(13)+Chr(10) /*/{Protheus.doc} SPHELPCP Função SPHELPCP, inclusão de help em campos MSGET @param Não recebe parâmetros @return Não retorna nada @author Rafael Goncalves @owner sempreju.com.br @version Protheus 12 @since Abr|2020 /*/ User Function SPHELPCP() Local aArea := GetArea() Private cPerson := Space(100) //help personalizado Private cFieldDB := Space(100) //Help campo existente Private cPlaceHold := Space(100) //placeHold no Get ShowHelpDlg( "Exemplo Help", { "Este é um exemplo de help Dlg" }, , { "Fechar" } ) DEFINE MSDIALOG oDlg TITLE "Janela" FROM 000, 000 TO 170, 430 PIXEL //Help texto personalizado @ 006, 006 SAY oSayNor PROMPT "Personalizado:" SIZE 100, 007 OF oDlg PIXEL @ 003, 060 MSGET oGetNor VAR cPerson SIZE 100, 010 OF oDlg PIXEL oGetNor:bHelp := {||ShowHelpCpo("personalizado",; {"Texto Linha 1"+ENTER+"Texto Linha 2"},2,; {"Solução Linha 1"},2)} //Help com base em campo existente @ 026, 006 SAY oSayBD PROMPT "Base SA1: " SIZE 100, 007 OF oDlg PIXEL @ 023, 060 MSGET oGetBD VAR cFieldDB SIZE 100, 010 OF oDlg PIXEL oGetBD:bHelp := {||ShowHelpCpo("existente",; {GetHlpSoluc("A1_COD")[1]},2,; {GetHlpSoluc("A1_COD")[2]},2)} cPlaceHold := "Place Hold Exemplo com Help" oTGet1 := TGet():New( 053,01, bSetGet( cPlaceHold ),oDlg, 250,009,"",/* [ bValid ]*/,/**nClrFore */,/**nClrBack */,/**oFont */,/**uParam12 */,/**uParam13 */, .t.,/**uParam15 */,/**uParam16 */, {|| .T.},/*uParam18*/ ,/**uParam19 */, /*bChange*/, /* lReadOnly */, /* lPassword */, /* uParam23 */, /* cReadVar */, /* uParam25 */, /* uParam26 */, /* uParam27 */, /* lHasButton */, /* lNoButton */, /* uParam30 */, "Ajuda de preenchimento - F1 para ver help"/* cLabelText */, 1/* nLabelPos */, /* oLabelFont */, /* nLabelColor */, /* cPlaceHold */, /* lPicturePriority */, /* lFocSel */ ) oTGet1:bHelp := {||ShowHelpCpo("cPerson",; {"Texto Linha 1"+ENTER+"Texto Linha 2"},2,; {"Solução Linha 1"},2)} ACTIVATE MSDIALOG oDlg CENTERED RestArea(aArea) Return
O código fonte desse e outros exemplos podem ser encontrados em nosso git.
Post interessantes:
Documentação original aqui.
Aprenda a instalar o Protheus 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