Página 1 de 1

grid - ENTER e sair

Enviado: 08 Set 2023 09:51
por JoséQuintas
Aqui o DBLCLICK executa a rotina e fecha janela ok.
Mas queria que o ENTER tivesse o mesmo efeito.
Alguém sabe como?

Código: Selecionar todos

FUNCTION gui_Browse( xDlg, xControl, nRow, nCol, nWidth, nHeight, oTbrowse, cField, xValue, workarea )

   LOCAL aHeaderList := {}, aWidthList := {}, aFieldList := {}, aItem

   IF Empty( xControl )
      xControl := gui_newctlname( "BROW" )
   ENDIF
   FOR EACH aItem IN oTbrowse
      AAdd( aHeaderList, aItem[1] )
      AAdd( aFieldList, aItem[2] )
      AAdd( aWidthList, Max( Len( aItem[3] ), Len( Transform(FieldGet(FieldNum(aItem[1] ) ), "" ) ) ) * 10 )
   NEXT
   @ nRow, nCol GRID ( xControl ) ;
      OF ( xDlg ) ;
      WIDTH nWidth ;
      HEIGHT nHeight ;
      ON DBLCLICK gui_BrowseDblClick( xDlg, xControl, workarea, cField, @xValue ) ;
      HEADERS aHeaderList ;
      WIDTHS aWidthList ;
      ROWSOURCE ( workarea ) ;
      COLUMNFIELDS aFieldList

   (xDlg);(cField);(xValue);(workarea)


   RETURN Nil

FUNCTION gui_BrowseDblClick( xDlg, xControl, workarea, cField, xValue )

   IF ! Empty( cField )
      xValue := &(workarea)->( FieldGet( FieldNum( cField ) ) )
   ENDIF
   DoMethod( xDlg, "RELEASE" )
   (xDlg);(xControl);(cField);(xValue)

   RETURN Nil
E na HMG 3 a mesma rotina funciona, mas não atualiza o valor do textbox.

grid - ENTER e sair

Enviado: 08 Set 2023 13:01
por HASA
Boa tarde tenta assim:

ON DBLCLICK { || gui_BrowseDblClick( xDlg, xControl, workarea, cField, @xValue ) , xDlg.RELEASE };

Pode copiar e colocar no seu grid e faça o teste.

HASA

grid - ENTER e sair

Enviado: 08 Set 2023 13:06
por JoséQuintas
Não deu tempo de avisar.

O DoMethod( xDlg, "RELEASE" ) resolveu.

O ENTER ficou resolvido com SET NAVIGATION EXTENDED, não tinha colocado pra HMG3.

Só restou um problema agora:

Na HMG Extended ok, tudo funcionando.
Na HMG3 o DBF não é sincronizado, e não serve essa rotina de pegar o campo do arquivo.
Tinha colocado outra antes, que não tinha funcionado, mas não lembro se testei com as duas, igual tá no exemplo SUPER.

grid - ENTER e sair

Enviado: 08 Set 2023 13:43
por JoséQuintas
Não foi.

Código: Selecionar todos

   IF ! Empty( cField )
      xValue := &(workarea)->( FieldGet( FieldNum( cField ) ) )

      //nCol := hb_AScan( oTBrowse, { | e | e[ 2 ] == cField } )
      //IF nCol != 0
      //   nRow := GetProperty( xDlg, xControl, "VALUE" )
      //   aList := GetProperty( xDlg, xControl, "ITEM", nRow )
      //   Msgbox( ValType( aList ) )
      //   xValue := aList[ nCol ]
      //   msgbox( ValType( xvalue ) )
      //ENDIF
   ENDIF
Nem como DBF, nem como array.
Tentar mais um chute depois: colocar como se fosse EDIT.

grid - ENTER e sair

Enviado: 08 Set 2023 14:13
por HASA
Boa tarde, só uso a HMG Extended - 19.08 acho kkk dai tbm não atualizei mais.
HASA

grid - ENTER e sair

Enviado: 08 Set 2023 14:52
por JoséQuintas
Achei.

HMG Extended

Código: Selecionar todos


FUNCTION gui_BrowseDblClick( xDlg, xControl, workarea, cField, xValue )

   IF ! Empty( cField )
      xValue := &(workarea)->( FieldGet( FieldNum( cField ) ) )
   ENDIF
   DoMethod( xDlg, "RELEASE" )

   RETURN Nil
HMG 3

Código: Selecionar todos

FUNCTION gui_BrowseDblClick( xDlg, xControl, workarea, cField, xValue )

   LOCAL nRecNo

   IF ! Empty( cField )
      nRecNo := GetProperty( xDlg, xControl, "RECNO" )
      GOTO ( nRecNo )
      xValue := &(workarea)->( FieldGet( FieldNum( cField ) ) )
   ENDIF
   DoMethod( xDlg, "RELEASE" )

   RETURN Nil
O mais interessante é que a solução de uma NÃO funciona na outra.

grid - ENTER e sair

Enviado: 09 Set 2023 19:26
por JoséQuintas
Achei pra OOHG, não é no GRID, mas no BROWSE, parecido com GRID de HMG3

Código: Selecionar todos

FUNCTION gui_BrowseDblClick( xDlg, xControl, workarea, cField, xValue )

   LOCAL nRecNo

   IF ! Empty( cField )
      nRecNo := GetProperty( xDlg, xControl, "VALUE" )
      GOTO ( nRecNo )
      xValue := &(workarea)->( FieldGet( FieldNum( cField ) ) )
   ENDIF
   DoMethod( xDlg, "RELEASE" )

   RETURN Nil

grid - ENTER e sair

Enviado: 20 Dez 2023 19:25
por JoséQuintas
Estou com problemas com o browse da HMG Extended.
Por algum motivo, está causando interferência ao fechar a DIALOG, no que se refere à janela MODAL/NÃO MODAL.

Código: Selecionar todos

FUNCTION gui_BrowseDblClick( xDlg, xControl, workarea, cField, xValue )

   (xControl)
   IF ! Empty( cField )
      xValue := &(workarea)->( FieldGet( FieldNum( cField ) ) )
   ENDIF
   DoMethod( xDlg, "RELEASE" )

   RETURN Nil
Em nenhuma outra LIB acontece isso, só HMG Extended.