Página 1 de 1

tela com hwgui

Enviado: 20 Jan 2020 16:33
por nasouza
Tenho uma tela em hwgui, começo com alguns Gets, depois tenho um grupo de botões e logo em seguida um browse, os gets fazem parte das informações fixas da tela, os botões servem para chamar as rotinas que vao alimentar o Browse, pergunto: como fazer com que o cursor nao retorne para o ultimo get, e fique apenas navegando sobre os botões.

Código: Selecionar todos

INIT DIALOG oVenda TITLE "Inclusao de Vendas" ;
     AT 0, 0 SIZE 765,611 CLIPPER  NOEXITESC  NOCLOSABLE  ;
     STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER 
     Thisform := oVenda

     @ 011,003 GROUPBOX oGpGer CAPTION ""                                                             SIZE 747,598 STYLE BS_LEFT
	 
	 @ 024,015 GROUPBOX oGpCab CAPTION ""                                                             SIZE 722,89  STYLE BS_LEFT 
	 
     @ 036,039 SAY      oLbDoc CAPTION "Documento"                                                    SIZE 75,18  
     @ 115,034 GET      oDocum VAR     E_DOC  PICTURE '@r 9999999'                                    SIZE 65,24   STYLE WS_DISABLED 
     @ 200,039 SAY      oLbVen CAPTION "Vendedor"                                                     SIZE 63,18  
     @ 270,034 GET      oVende VAR     cVende PICTURE '@r!'                                           SIZE 68,24   STYLE WS_DISABLED 
     @ 361,039 SAY      oLbEmi CAPTION "Emissão"                                                      SIZE 59,18  
     @ 427,034 GET      oDate1 VAR     E_DATA                                                         SIZE 98,24   STYLE WS_DISABLED 
     @ 547,039 SAY      oLbTpv CAPTION "Tipo de Venda"                                                SIZE 94,18  
     @ 648,034 GET      oTpVen VAR     cTpVen                                                         SIZE 86,24   STYLE WS_DISABLED 
     @ 036,075 SAY      oLbCpf CAPTION "Cpf"                                                          SIZE 23,18  
     @ 080,071 GET      oCpfCg VAR     E_CPF  PICTURE '@r 999.999.999-99' VALID {|| Chk_Cpf(E_CPF) }  SIZE 108,24  MAXLENGTH 11 TOOLTIP 'Cpf do Cliente'
     @ 332,075 SAY      oLbCli CAPTION "Cliente"                                                      SIZE 47,18  
     @ 385,071 GET      oClien VAR     E_NOME PICTURE '@r!'               VALID {|| Chk_Nome(E_NOME)} SIZE 350,24  MAXLENGTH 40 TOOLTIP 'Nome do Cliente'
	 
	 @ 024,111 GROUPBOX oGpOpc CAPTION ""                                                             SIZE 722,61  STYLE BS_LEFT 
	 
     @ 036,128 BUTTONEX oBtDes CAPTION "&Descrição"                                                   SIZE 100,39 ;
	           STYLE BS_CENTER +WS_TABSTOP ;
               ON CLICK {|| B_Descr() }			   
																		                              
     @ 146,128 BUTTONEX oBtCod CAPTION "&Código"                                                      SIZE 100,39 ; 
	           STYLE BS_CENTER +WS_TABSTOP                                                            
																		                              
     @ 256,128 BUTTONEX oBtCba CAPTION "&C.Barra"                                                     SIZE 100,39 ;
	           STYLE BS_CENTER +WS_TABSTOP                                                            
																		                              
     @ 366,128 BUTTONEX oBtExc CAPTION "&Exclui Itens"                                                SIZE 100,39 ;
	           STYLE BS_CENTER +WS_TABSTOP                                                            
																		                              
     @ 627,128 BUTTONEX oBtFin CAPTION "&Finaliza Venda"                                              SIZE 108,32 ;
               STYLE BS_CENTER +WS_TABSTOP  ;
               ON CLICK {|| Gravar_Venda(),oVenda:Close() }
			   
	 @ 024,171 GROUPBOX oGpBro CAPTION ""                                                             SIZE 722,335 STYLE BS_LEFT  	
	 
     @ 036,189 BROWSE   oBrows DATABASE                                   SIZE 699,302 ;
               STYLE WS_TABSTOP      

     // CREATE oBrowse1   //  SCRIPT GENARATE BY DESIGNER
     oBrows:alias := 'ESTVE'
     oBrows:nColumns := 5
     SELECT (oBrows:alias) 
     oBrows:AddColumn( HColumn():New('Descrição', FieldBlock( 'nmer' )  ,'C',36, 0 ,.F.,1,,'@r!',,,,,,,,,))
     oBrows:AddColumn( HColumn():New('Un',        FieldBlock( 'uni' )   ,'C', 2, 0 ,.F.,1,1,'@r!',,,,,,,,,))
     oBrows:AddColumn( HColumn():New('Qtde',      FieldBlock( 'qtdef' ) ,'N', 8, 3 ,.F.,1,,'@r 99999.999',,,,,,,,,))
     oBrows:AddColumn( HColumn():New('Unitario',  {|| total/qtdef }     ,'N',10, 2 ,.F.,1,,'@r 999,999.99',,,,,,,,,))
     oBrows:AddColumn( HColumn():New('Total',     FieldBlock( 'total' ) ,'N',10, 2 ,.F.,1,,'@r 999,999.99',,,,,,,,,))
     // END BROWSE SCRIPT  -  oBrowse1
	 
     @ 024,507 GROUPBOX       oGpTot CAPTION ""                                 SIZE 722,80  STYLE BS_LEFT  
     @ 036,532 SAY            oLbNit CAPTION "Numero de Itens"                  SIZE 109,18  
     @ 151,524 GET            oNunIt VAR     nNunIt PICTURE '@r 999999'         SIZE 103,24  MAXLENGTH 6 TOOLTIP 'Numero de Itens'
     @ 439,532 SAY            oLbVtd CAPTION "Valor Total do Documento"         SIZE 168,18
     @ 613,528 GET            oVlrDo VAR     nVlrDo PICTURE '@r 999,999,999.99' SIZE 122,24  TOOLTIP 'Valor Total do Documento'
     @ 036,560 SAY            oLbNpa CAPTION "Numero de Parcelas"               SIZE 134,18  
     @ 173,554 GET            oNumPa VAR     nNumPa PICTURE '@r 999999'         SIZE 80,24   TOOLTIP 'Numero de Parcelas'

     ACTIVATE DIALOG oVenda 
	 
	 dbcloseall()
     aEval(Directory(pC_CaDbf+"IN*.dbf") , { |aFile| fErase(pC_CaDbf+aFile[1]) } )
     aEval(Directory(pC_CaCdx+"IN*.Cdx") , { |aFile| fErase(pC_CaCdx+aFile[1]) } )
RETURN oVenda:lresult

tela com hwgui

Enviado: 20 Jan 2020 16:45
por Itamar M. Lins Jr.
Ola!
Não entendi direito sua pergunta/exemplo.
Para colocar o foco usamos:

Código: Selecionar todos

 Function XYZ( ... )
 ...
 oObj:SetFocus()
 RETURN .T.
Isso como retorno de uma função chamada por um GET qualquer.
PS. Faça exemplos pequenos que dê para simular na nossa máquina.

Saudações,
Itamar M. Lins Jr.

tela com hwgui

Enviado: 20 Jan 2020 19:38
por alxsts
Olá!

Veja se ajuda:

Código: Selecionar todos

   // No evento click de cada botão, envie o próprio formulário como parâmetro
   // para a função que é executada no click...
   @ 036,128 BUTTONEX oBtDes CAPTION "&Descrição"  SIZE 100,39 ;
   STYLE BS_CENTER +WS_TABSTOP ;
    ON CLICK {|| B_Descr( oVenda ) }            

//---------------------------------------------------------------------------------------------

STATIC FUNCTION B_Descr( o )

   With ObJect o

      // ...
      // Procedimentos executados pela função...
      // ...

      // No final, posicionar o foco em algum componente do formulário.
      // Neste caso, o próprio botão que chamou a função

      :B_Descr:setFocus()

   End With

RETURN NIL