Como hago para que cuando finalizo la edici贸n de una celda de un xbrowse al cambiar a la siguiente se active el edici贸n autom谩tica de la celda sin tener que puslar ninguna tecla.
Gracias
Pongo un peque帽o ejemplo de lo que estoy intentando
Gracias
Pongo un peque帽o ejemplo de lo que estoy intentando
聽 聽 #include "FiveWin.ch"
聽 聽 #include "InKey.ch"
聽 聽 #include "xbrowse.ch"
#DEFINE COL1聽 聽 1
#DEFINE COL2聽 聽 2
#DEFINE COL3聽 聽 3
#DEFINE COL4聽 聽 4
#DEFINE COL5聽 聽 5
#define DCONSU 聽0
#define DALTAS聽 1
#define DMODIF聽 2
#DEFINE DREGISTRO聽 聽{ SPACE(10) , SPACE(40), 0, 聽CTOD(""), CTOD("") }
STATIC nAccion
聽 聽 function Prueba2()
聽 聽 聽 聽local aArray := {}
聽 聽 聽 聽local oWnd, ;
聽 聽 聽 聽 聽 聽 聽oBrw, oCol
聽 聽 聽 聽local nI
聽 聽 聽 聽AADD(aArray, DREGISTRO)
聽 聽 聽 聽define window oWnd FROM 0,0 TO 24, 120 title "test" //menu oMenu
聽 聽 聽 聽oBrw:= txbrowse():new( oWnd )
聽 聽 聽 聽oBrw:nRowHeight := 25
聽 聽 聽 聽oBrw:nColDividerStyle 聽 聽:= LINESTYLE_BLACK
聽 聽 聽 聽oBrw:nRowDividerStyle 聽 聽:= LINESTYLE_BLACK
聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽oCol:cHeader 聽 聽 聽 := "C贸digo"
聽 聽 聽 聽oCol:nWidth 聽 聽 聽 聽:= 80
聽 聽 聽 聽oCol:bStrData 聽 聽 聽:= {|| IIF( LEN( aArray ) == 0, SPACE(10), aArray[oBrw:nArrayAt, COL1] ) }
聽 聽 聽 聽oCol:nHeadStrAlign := AL_CENTER
聽 聽 聽 聽oCol:nDataStrAlign := AL_LEFT
聽 聽 聽 聽oCol:nArrayCol 聽 聽 := COL1
聽 聽 聽 聽oCol:nEditType 聽 聽 := EDIT_GET
聽 聽 聽 聽oCol:bClrEdit 聽 聽 聽:= { || {CLR_BLACK, CLR_YELLOW} }
聽 聽 聽 聽oCol:bEditValid 聽 聽:= { |oGet, oCol| ValidaCol(oGet, oCol, COL1) }
聽 聽 聽 聽oCol:bOnPostEdit 聽 := { |oCol, xValue, nKey| PostEdit( oCol, xValue, nKey, COL1) }
聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽oCol:cHeader 聽 聽 聽 := "Comentario"
聽 聽 聽 聽oCol:nWidth 聽 聽 聽 聽:= 320
聽 聽 聽 聽oCol:bStrData 聽 聽 聽:= {|| IIF( LEN( aArray ) == 0, SPACE(40), aArray[oBrw:nArrayAt, COL2] ) }
聽 聽 聽 聽oCol:nHeadStrAlign := AL_CENTER
聽 聽 聽 聽oCol:nDataStrAlign := AL_LEFT
聽 聽 聽 聽oCol:nArrayCol 聽 聽 := COL2
聽 聽 聽 聽oCol:nEditType 聽 聽 := EDIT_GET
聽 聽 聽 聽oCol:bClrEdit 聽 聽 聽:= { || {CLR_BLACK, CLR_YELLOW } }
聽 聽 聽 聽oCol:bEditValid 聽 聽:= { |oGet, oCol| ValidaCol(oGet, oCol, COL2) }
聽 聽 聽 聽oCol:bOnPostEdit 聽 := { |oCol, xValue, nKey| PostEdit( oCol, xValue, nKey, COL2) }
聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽oCol:cHeader 聽 聽 聽 := "Importe"
聽 聽 聽 聽oCol:nWidth 聽 聽 聽 聽:= 80
聽 聽 聽 聽oCol:bStrData 聽 聽 聽:= {|| IIF( LEN( aArray ) == 0, 0, aArray[oBrw:nArrayAt, COL3] ) }
聽 聽 聽 聽oCol:nHeadStrAlign := AL_CENTER
聽 聽 聽 聽oCol:nDataStrAlign := AL_RIGHT
聽 聽 聽 聽oCol:nArrayCol 聽 聽 := COL3
聽 聽 聽 聽oCol:nEditType 聽 聽 := EDIT_GET
聽 聽 聽 聽oCol:bClrEdit 聽 聽 聽:= { || {CLR_BLACK, CLR_YELLOW } }
聽 聽 聽 聽oCol:bEditValid 聽 聽:= { |oGet, oCol| ValidaCol(oGet, oCol, COL3) }
聽 聽 聽 聽oCol:bOnPostEdit 聽 := { |oCol, xValue, nKey| PostEdit( oCol, xValue, nKey, COL3) }
聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽oCol:cHeader 聽 聽 聽 := "Fecha 1"
聽 聽 聽 聽oCol:nWidth 聽 聽 聽 聽:= 80
聽 聽 聽 聽oCol:bStrData 聽 聽 聽:= {|| IIF( LEN( aArray ) == 0, CTOD(""), aArray[oBrw:nArrayAt, COL4] ) }
聽 聽 聽 聽oCol:nHeadStrAlign := AL_CENTER
聽 聽 聽 聽oCol:nDataStrAlign := AL_CENTER
聽 聽 聽 聽oCol:nArrayCol 聽 聽 := COL4
聽 聽 聽 聽oCol:nEditType 聽 聽 := EDIT_GET
聽 聽 聽 聽oCol:bClrEdit 聽 聽 聽:= { || {CLR_BLACK, CLR_YELLOW } }
聽 聽 聽 聽oCol:bEditValid 聽 聽:= { |oGet, oCol| ValidaCol(oGet, oCol, COL4) }
聽 聽 聽 聽oCol:bOnPostEdit 聽 := { |oCol, xValue, nKey| PostEdit( oCol, xValue, nKey, COL4) }
聽 聽 聽 聽oCol := oBrw:AddCol()
聽 聽 聽 聽oCol:cHeader 聽 聽 聽 := "Fecha 2"
聽 聽 聽 聽oCol:nWidth 聽 聽 聽 聽:= 80
聽 聽 聽 聽oCol:bStrData 聽 聽 聽:= {|| IIF( LEN( aArray ) == 0, CTOD(""), aArray[oBrw:nArrayAt, COL5] ) }
聽 聽 聽 聽oCol:nHeadStrAlign := AL_CENTER
聽 聽 聽 聽oCol:nDataStrAlign := AL_CENTER
聽 聽 聽 聽oCol:nArrayCol 聽 聽 := COL5
聽 聽 聽 聽oCol:nEditType 聽 聽 := EDIT_GET
聽 聽 聽 聽oCol:bClrEdit 聽 聽 聽:= { || {CLR_BLACK, CLR_YELLOW } }
聽 聽 聽 聽oCol:bEditValid 聽 聽:= { |oGet, oCol| ValidaCol(oGet, oCol, COL5) }
聽 聽 聽 聽oCol:bOnPostEdit 聽 := { |oCol, xValue, nKey| PostEdit( oCol, xValue, nKey, COL5) }
聽 聽 聽 聽oBrw:bPastEof 聽:= { || AddRow( oBrw) }
聽 聽 聽 聽oBrw:bKeyDown := {| nKey | If( nKey == VK_DELETE, DelRow( oBrw ), NIL ) }
聽 聽 聽 聽oBrw:SetArray( aArray )
聽 聽 聽 聽oBrw:CreateFromCode()
聽 聽 聽 聽oWnd:oClient := oBrw
聽 聽 聽 聽nAccion := DCONSU
聽 聽 聽 聽ACTIVATE window oWnd ON INIT oWnd:Center()
聽 聽 return nil
STATIC FUNCTION PostEdit(oCol, xValue, nKey, nCol)
If nKey == VK_ESCAPE .or. nKey == 0
聽 聽If nAccion == DALTAS
聽 聽 聽 DelRow(oCol:oBrw)
聽 聽 聽 RETURN .T.
聽 聽EndIf
EndIf
oCol:Value := xValue
If nAccion == DALTAS .and. nCol == COL5
聽 聽msginfo("guardar alta")
聽 聽nAccion := DCONSU
聽 聽RETURN .T.
EndIf
If nAccion != DALTAS
聽 聽MSGINFO("GUARDAR MODIFICACION")
eNDIF
If nKey == VK_RETURN
聽 oCol:oBrw:GoRight()
聽 PostMessage( oCol, WM_CHAR, VK_RETURN)
EndIf
RETURN .T.
STATIC FUNCTION ValidaCol(oGet, oCol, nCol)
dEPURA(OgET:CtEXT)
return .t.
static function AddRow( oBrw )
聽 聽If nAccion == DALTAS
聽 聽 聽 RETURN NIL
聽 聽EndIf
聽 聽AAdd( oBrw:aArrayData, DREGISTRO )
聽 聽oBrw:GoBottom()
聽 聽oBrw:GoLeftMost()
聽 聽oBrw:Refresh()
聽 聽oBrw:SetFocus()
聽 聽nAccion := DALTAS
聽 聽PostMessage( oBrw:hWnd, WM_CHAR, VK_RETURN)
return nil
static function DelRow( oBrw, aDialogo )
聽 聽If oBrw:nLen > 0
聽 聽 聽 ADel( oBrw:aArrayData, oBrw:nArrayAt )
聽 聽 聽 ASize( oBrw:aArrayData, oBrw:nLen - 1 )
聽 聽 聽 oBrw:Refresh()
聽 聽endif
聽 聽oBrw:SetFocus()
聽 聽nAccion := DCONSU
return nil