Hoje iremos responder essa pergunta, do motivo de um TGet não exibir a lupa quando vinculamos ele a um F3 (LookUp).
Se você já criou um TGet, vinculou ele a uma consulta padrão, e ele exibiu aquela interrogação no lugar da lupa, provavelmente já se deparou com essa dúvida.
Um dos alunos também postou em nosso grupo do WhatsApp, então eu decidi fazer uns testes e preparar esse artigo.
O que acontece, é que quem controla esse ícone é o atributo lHasButton, e você deve passar como .T. logo ao acionar o método New do TGet, para que ele entenda que irá exibir o ícone, do contrário ele vai exibir uma interrogação ou um trema.
Abaixo um print de exemplo com um TGet normal, um TGet normal usando CSS, um TGet com lHasButton e um TGet com lHasButton e CSS.
E abaixo o código fonte desenvolvido do exemplo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zTstTGet
Funcao com tela customizada usando a classe TDialog que foi gerado pelo PDialogMaker
@type Function
@author Atilio
@since 17/06/2022
@see https://atiliosistemas.com/portfolio/pdialogmaker/
@obs Obrigado por usar um aplicativo da Atilio Sistemas
/*/
User Function zTstTGet()
If Select("SX2") == 0
RPCSetEnv("99", "01", "Administrador", "", "")
EndIf
fMontaTela()
Return
Static Function fMontaTela()
Local aArea := FWGetArea()
Local nCorFundo := RGB(238, 238, 238)
Local nJanAltura := 281
Local nJanLargur := 358
Local cJanTitulo := 'Exemplo TGet'
Local lDimPixels := .T.
Local lCentraliz := .T.
Local nObjLinha := 0
Local nObjColun := 0
Local nObjLargu := 0
Local nObjAltur := 0
Private cFontNome := 'Tahoma'
Private oFontPadrao := TFont():New(cFontNome, , -12)
Private oDialogPvt
Private bBlocoIni := {|| /*fSuaFuncao()*/ } //Aqui voce pode acionar funcoes customizadas que irao ser acionadas ao abrir a dialog
//objeto0
Private oSayObj0
Private cSayObj0 := 'Normal'
//objeto1
Private oGetObj1
Private xGetObj1 := Space(TamSX3('B1_COD')[1])
//objeto2
Private oSayObj2
Private cSayObj2 := 'Com CSS'
//objeto3
Private oGetObj3
Private xGetObj3 := Space(TamSX3('B1_COD')[1])
//objeto4
Private oSayObj4
Private cSayObj4 := 'Com lHasButton'
//objeto5
Private oGetObj5
Private xGetObj5 := Space(TamSX3('B1_COD')[1])
//objeto6
Private oSayObj6
Private cSayObj6 := 'Com lHasButton e CSS'
//objeto7
Private oGetObj7
Private xGetObj7 := Space(TamSX3('B1_COD')[1])
//objeto8
Private oBtnObj8
Private cBtnObj8 := 'Confirmar'
Private bBtnObj8 := {|| MsgInfo('Clicou no OK', 'Atenção')}
//Cria a dialog
oDialogPvt := TDialog():New(0, 0, nJanAltura, nJanLargur, cJanTitulo, , , , , , nCorFundo, , , lDimPixels)
//objeto0 - usando a classe TSay
nObjLinha := 4
nObjColun := 4
nObjLargu := 70
nObjAltur := 6
oSayObj0 := TSay():New(nObjLinha, nObjColun, {|| cSayObj0}, oDialogPvt, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/)
//objeto1 - usando a classe TGet
nObjLinha := 3
nObjColun := 74
nObjLargu := 100
nObjAltur := 10
oGetObj1 := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , xGetObj1 := u, xGetObj1)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels)
oGetObj1:cF3 := 'SB1'
//objeto2 - usando a classe TSay
nObjLinha := 19
nObjColun := 4
nObjLargu := 70
nObjAltur := 6
oSayObj2 := TSay():New(nObjLinha, nObjColun, {|| cSayObj2}, oDialogPvt, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/)
//objeto3 - usando a classe TGet
nObjLinha := 18
nObjColun := 74
nObjLargu := 100
nObjAltur := 10
oGetObj3 := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , xGetObj3 := u, xGetObj3)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels)
oGetObj3:cF3 := 'SB1'
oGetObj3:SetCSS("TGet{ color: #000000; selection-background-color: #369CB5; background-color: #FFFFFF; padding-left: 3px; padding-right: 3px; border-top-left-radius:3px; border-bottom-left-radius:3px; border: 1px solid #C5C9CA; border-right: 0px; }QPushButton{ border: 1px solid #C5C9CA; background-color: #FFFFFF; border-left: 0px; border-top-right-radius:3px; border-bottom-right-radius:3px; outline: none; }TGet:disabled { color: #000000; border: 1px solid #E8EBF21; border-right: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; background-color: #E8EBF1;}QPushButton:disabled{ background-color: #E8EBF1; }tLabel{color: #000000;}")
//objeto4 - usando a classe TSay
nObjLinha := 34
nObjColun := 4
nObjLargu := 70
nObjAltur := 6
oSayObj4 := TSay():New(nObjLinha, nObjColun, {|| cSayObj4}, oDialogPvt, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/)
//objeto5 - usando a classe TGet
nObjLinha := 33
nObjColun := 74
nObjLargu := 100
nObjAltur := 10
lHasButton := .T.
oGetObj5 := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , xGetObj5 := u, xGetObj5)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels, /*uParam15*/, /*uParam16*/, /*bWhen*/, /*uParam18*/, /*uParam19*/, /*bChange*/, /*lReadOnly*/, /*lPassword*/, /*uParam23*/, /*cReadVar*/, /*uParam25*/, /*uParam26*/, /*uParam27*/, lHasButton)
oGetObj5:cF3 := 'SB1'
//objeto6 - usando a classe TSay
nObjLinha := 49
nObjColun := 4
nObjLargu := 70
nObjAltur := 6
oSayObj6 := TSay():New(nObjLinha, nObjColun, {|| cSayObj6}, oDialogPvt, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, nObjLargu, nObjAltur, , , , , , /*lHTML*/)
//objeto7 - usando a classe TGet
nObjLinha := 48
nObjColun := 74
nObjLargu := 100
nObjAltur := 10
lHasButton := .T.
oGetObj7 := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , xGetObj7 := u, xGetObj7)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels, /*uParam15*/, /*uParam16*/, /*bWhen*/, /*uParam18*/, /*uParam19*/, /*bChange*/, /*lReadOnly*/, /*lPassword*/, /*uParam23*/, /*cReadVar*/, /*uParam25*/, /*uParam26*/, /*uParam27*/, lHasButton)
oGetObj7:cF3 := 'SB1'
oGetObj7:SetCSS("TGet{ color: #000000; selection-background-color: #369CB5; background-color: #FFFFFF; padding-left: 3px; padding-right: 3px; border-top-left-radius:3px; border-bottom-left-radius:3px; border: 1px solid #C5C9CA; border-right: 0px; }QPushButton{ border: 1px solid #C5C9CA; background-color: #FFFFFF; border-left: 0px; border-top-right-radius:3px; border-bottom-right-radius:3px; outline: none; }TGet:disabled { color: #000000; border: 1px solid #E8EBF21; border-right: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; background-color: #E8EBF1;}QPushButton:disabled{ background-color: #E8EBF1; }tLabel{color: #000000;}")
//objeto8 - usando a classe TButton
nObjLinha := 116
nObjColun := 2
nObjLargu := (nJanLargur/2) - 2
nObjAltur := 15
oBtnObj8 := TButton():New(nObjLinha, nObjColun, cBtnObj8, oDialogPvt, bBtnObj8, nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
//Ativa e exibe a janela
oDialogPvt:Activate(, , , lCentraliz, , , bBlocoIni)
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
