xBrowse: grabar dato al salir de celda con el mouse

xBrowse: grabar dato al salir de celda con el mouse

Postby RSalazarU » Thu Aug 04, 2016 3:34 am

Amigos del foro:

Varios de los usuarios de mis programas se quejan de que al salir del editor de celda con el mouse, se pierde el dato.

Lo resolví de la siguiente manera:

Modifique el METHOD PostEdit( xValue, lButton, lDirectAssign ) CLASS TXBrwColumn, de la siguiente forma:

Code: Select all  Expand view

      case ::nEditType == EDIT_GET .or. ::nEditType >= EDIT_DATE
         if ::oEditGet != nil

            ::oEditGet:Assign()//<--- Aniadir esta linea. Resuelve el problema de salir de la edicion con el mouse. si se lo coloca en ::oEditGet:bLostFocus no funciona

            Eval( ::bOnPostEdit, Self, Eval( ::oEditGet:bSetGet ), ::oEditGet:nLastKey )
            nLastKey := ::oEditGet:nLastKey
            lGoNext := ( AScan( { VK_RETURN, VK_DOWN, VK_UP, VK_TAB }, ::oEditGet:nLastKey ) > 0 )
            ::oEditGet:End()
            ::oEditGet := nil
         endif
 


y mas abajo
Code: Select all  Expand view

      case ::nEditType == EDIT_GET_LISTBOX
           if ::oEditLbx != nil .and. IsWindow( ::oEditLbx:hWnd )
              ::oEditLbx:End()
              ::oEditLbx := nil
           endif
           if ! lButton
              if ::oEditGet != nil

                 ::oEditGet:Assign()//<--- Aniadir esta linea. Resuelve el problema de salir de la edicion con el mouse. si se lo coloca en ::oEditGet:bLostFocus no funciona

                 Eval( ::bOnPostEdit, Self, Eval( ::oEditGet:bSetGet ), ::oEditGet:nLastKey )
                 lGoNext := ( ::oEditGet:nLastKey == VK_RETURN )
                 ::oEditGet:End()
                 ::oEditGet := nil
              endif
           elseif xValue != nil
              Eval( ::bOnPostEdit, Self, xValue, 0 )
           endif

      case ::nEditType == EDIT_GET_BUTTON
           if ! lButton
              if ::oEditGet != nil

                 ::oEditGet:Assign()//<--- Aniadir esta linea. Resuelve el problema de salir de la edicion con el mouse. si se lo coloca en ::oEditGet:bLostFocus no funciona

                 Eval( ::bOnPostEdit, Self, Eval( ::oEditGet:bSetGet ), ::oEditGet:nLastKey )
                 lGoNext := ( ::oEditGet:nLastKey == VK_RETURN )
                 ::oEditGet:End()
                 ::oEditGet := nil
              endif
           elseif xValue != nil
              if ::bOnPostEdit != nil
                 Eval( ::bOnPostEdit, Self, xValue, 0 )
              endif
           endif
 


Con estas modificaciones, al salir del la celda con el mouse, el dato permanece.

Si alguien ya resolvió el problema, por favor indicar cual es la mejor forma (busque en el foro y no lo encontré)

El problema ahora es que: NO se ejecuta el ::oEditGet:bValid.

Como hago para que se ejecute el ::oEditGet:bValid al salir del editor de celda con el mouse??

De antemano, gracias por la ayuda.

Atentamente,

Rolando
Cochabamba - Bolivia
RSalazarU
 
Posts: 211
Joined: Wed Jul 16, 2008 12:59 pm
Location: Cochabamba-Bolivia

Re: xBrowse: grabar dato al salir de celda con el mouse

Postby Marcelo Via Giglio » Thu Aug 04, 2016 12:43 pm

Rolando,

probaste con

Code: Select all  Expand view
oBrw:aCols[<coln>]:lAutoSave    := .T.


saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1064
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: xBrowse: grabar dato al salir de celda con el mouse

Postby acuellar » Thu Aug 04, 2016 4:49 pm

Rolando,
Como indica Marcelo con lAutoSave es suficiente sin hacer ningún cambio

Code: Select all  Expand view

   oCol:bOnPostEdit := {|o, v, n| oEMPL:TFAC:=v,oEMPL:Save() }
   oCol:bEditValid:={| oGet, oCol| If(oGet:Value()<50,(MsgStop(),.F.),.T. ) }
   oCol:lAutoSave:= .T.
 


Con validación

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1643
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: xBrowse: grabar dato al salir de celda con el mouse

Postby RSalazarU » Thu Aug 04, 2016 11:10 pm

Marcelo, Ademar:

Gracias, funciona perfecto
RSalazarU
 
Posts: 211
Joined: Wed Jul 16, 2008 12:59 pm
Location: Cochabamba-Bolivia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 34 guests