Comparto un problema que sucede cuando intento cerrar un dialog que contiene un xBrowse.
El Problema se dá si se cierra el dialog cuando se está editando un campo dentro de la xBrowse como puede verse en el video que subí a SoftLatinoxBase:
http://softlatinoxbase.idomyweb.com/foro/viewtopic.php?f=2&t=37&p=58&sid=b192f6fb2cfaa50d1549a7a65c1d6a23#p58
No se si el problema es por mi código que muestro a continuación:
oCol := oBrw:AddCol()
oCol:cHeader := "ELEMENTO"
oCol:bStrData := { || oDbf:ELEMENTO }
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
oCol:nWidth := 140
oCol:cSortOrder := "GRELENOM"
oBrw:aCols[ 4 ]:nEditType := EDIT_GET
oBrw:aCols[ 4 ]:bOnPostEdit := {|oCol, xVal, nKey| iif( nKey != VK_ESCAPE, ;
(oDbf:ELEMENTO:=xVal , oDbf:save() , oBrw:refresh() ) , ) }
oBrw:aCols[4]:cEditPicture := "@!"
oBrw:aCols[4]:cTooltip:="Clickear una vez con el izquierdo para ordenar por ELEMENTO"Pero lo solucioné reformando apenas el "METHOD _FieldPut( nPos, uValue ) CLASS TDataBase"
METHOD _FieldPut( nPos, uValue ) CLASS TDataBase
local lLocked := .f.
local lCalcCol := ( nPos > ( ::nArea )->( FCount() ) )
if ::lBuffer
if lCalcCol
// ( ::nArea )->( Eval( ::aStruct[ nPos ][ DBS_BLOCK ], Self, uValue ) )
try //
( ::nArea )->( Eval( ::aStruct[ nPos ][ DBS_BLOCK ], Self, uValue ) ) // by RolandoCerella 07092013
catch // evita que de error al cerrar
return nil // el dialog estando en edición
end // de un campo
else
::aBuffer[ nPos ] := uValue
endif
else
...Espero sea de utilidad.
Rolando