Page 1 of 1

editar celda siguiente sin dar enter

Posted: Wed Mar 01, 2017 1:01 am
by artu01
Foro:
doy click a la columna precio y quiero que salte al siguiente registro y se édite sin necesidad de dar enter, como es que se hace

Code: Select all


   REDEFINE XBROWSE oBrw                                           ;
      FIELDS ARTICULO->Cod                                         ;
            ,ARTICULO->DesG                                        ;
            ,Transform(ARTICULO->Pv, "999.9999")                   ;
            ," "                                                   ;
      FIELDSIZES 70, 250,120, 90, 10                               ;
      HEADERS "CODIGO"                                             ;
            ,"DESCRIPCION"                                         ;
            ,"PRECIO S/."                                          ;   //solo esta col quiero editar
            ," "                                                   ;
      ID 4001 OF oDlg                                              ;
      AUTOSORT                                                     ;
      UPDATE ;
      FASTEDIT
                                                            
    oBrw:lFastEdit:= .t.
        oBrw:nMoveType := MOVE_DOWN
    oBrw:aCols[3]:nEditType := EDIT_GET
    oBrw:aCols[3]:cDataType := "N"
    oBrw:aCols[3]:bOnPostEdit    := { | o, x, n | UpdatePrecio( x, oBrw, n) }   //,oBrw:GoDown()
    ....
    ....
return nil
Static function UpdatePrecio( x, oBrwf, n )
    local nMts
    If bloquea("ARTICULO")
      ARTICULO->pv      := val(x)
      nMts:=Round(ARTICULO->Cap*ARTICULO->conos,2)
      ARTICULO->Importe:=Round(nMts*ARTICULO->pv,2)
      ARTICULO->(dbunlock())      
      obrwf:refresh()
    endif  
return 0
 
pongo una imagen de lo que quiero
Image


Gracias

Re: editar celda siguiente sin dar enter

Posted: Wed Mar 01, 2017 1:50 pm
by jrestojeda
Hola,
Si no es al momento de dar Enter.
¿Cuál sería el criterio o condición para que se comience a editar la siguiente celda?

Saludos,

Re: editar celda siguiente sin dar enter

Posted: Wed Mar 01, 2017 2:16 pm
by artu01
Hola gracias por responder,
creo que no me he explicado bien, quisiera que se pueda registrar datos rápidamente en la columna precio
para ello selecciono la fila a editar el precio (eso esta Ok) luego de dar de terminar de editar quisiera que al dar
enter salte al sgte registro y sin necesidad de dar enter o doble click pueda editar esa fila (la única celda a editar de mi browse va ser la col precio)

la formula es EDITAR COL PRECIO DE FILA 1 - ENTER - EDITAR COL PRECIO DE FILA 2 - ENTER - EDITAR COL PRECIO DE FILA N - ENTER - ....

Code: Select all

   REDEFINE XBROWSE oBrw                                           ;
      FIELDS ARTICULO->Cod                                         ;
            ,ARTICULO->DesG                                        ;
            ,Transform(ARTICULO->Pv, "999.9999")                   ;
            ," "                                                   ;
      FIELDSIZES 70, 250,120, 90, 10                               ;
      HEADERS "CODIGO"                                             ;
            ,"DESCRIPCION"                                         ;
            ,"PRECIO S/."                                          ;
            ," "                                                   ;
      ID 4001 OF oDlg                                              ;
      AUTOSORT                                                     ;
      UPDATE ;
      FASTEDIT
                                                            
    oBrw:lFastEdit:= .t.
    //oBrw:nMoveType := MOVE_DOWN
    oBrw:aCols[3]:nEditType := EDIT_GET
    oBrw:aCols[3]:cDataType := "N"
    oBrw:nMarqueeStyle       := MARQSTYLE_HIGHLROW
    oBrw:aCols[3]:bOnPostEdit    := { | o, x, n | UpdatePrecio( x, oBrw, n) ,obrw:godown(),oBrw:nColSel := 3,oBrw:aCols[3]:Edit()}    
    oBrw:aCols[3]:bGetChange = {| k, f, o, oCol | If( Len( RTrim( o:oGet:Buffer ) ) == Len( o:oGet:Buffer ),;  
                                           ( o:SendMsg( WM_KEYDOWN, VK_RETURN ) ), ) }  // Esto lo saque de otro mensaje posteado pero no me trabaja

 

Re: editar celda siguiente sin dar enter

Posted: Thu Mar 02, 2017 3:36 pm
by VitalJavier
Mira yo lo tengo asi
y no tengo la necesidad de dar enter para comenzar a editar
solo tecleo en la celda y listo

Code: Select all


oBrowA:nMarqueeStyle                := MARQSTYLE_HIGHLCELL
oBrowA:lFastEdit                        := .T.
oBrowA:aCols[01]:cEditPicture   := "@!"
oBrowA:aCols[01]:nEditType      := 1

 

Después de terminar de meter los datos si tengo que dar enter para salir
y automatico se va a la siguente celda y sin dar enter vuelvo solo a teclear
lo necesario y asi sucesivamente

Saludos.

Re: editar celda siguiente sin dar enter

Posted: Fri Mar 03, 2017 8:57 pm
by artu01
Ok Javier y como seria para que salte al sgte registro del xbrowse y se edite la misma columna?

Re: editar celda siguiente sin dar enter

Posted: Sat Mar 04, 2017 11:31 am
by armando.lagunas
xBrw:Godown( 1 ) -- uno abajo

Re: editar celda siguiente sin dar enter

Posted: Mon Mar 06, 2017 12:39 am
by VitalJavier
artu1
En browse que tengo para ir capturando rápidamente
En lugar de dar <Enter> al final le doy <Flecha abajo>
y listo, ya estoy en el siguiente renglón y misma columna
voy tecleando los importes flecha abajo.

Re: editar celda siguiente sin dar enter

Posted: Mon Mar 06, 2017 1:35 pm
by nageswaragunupudi
Please try

Code: Select all

   REDEFINE XBROWSE oBrw  ;
      DATASOURCE "ARTICULO" ; // <-- important
      COLUMNS "Cod", "Desg", "PV" ; // do not use FIELDS. 
      HEADERS "CODIGO", "DESCRIPTION", "PRECIO" ;
      PICTURES nil, nil, "999.9999" ;
      ID 4001 OF oDlg UPDATE FASTEDIT

   WITH OBJECT oBrw:aCols[ 3 ]
      :nEditType  := EDIT_GET
      :bOnChange  := { |oCol| If( oBrw:Lock(), ;
         ( ARTICULO->Importe := ROUND( ROUND( ARTICULO->CAP * ARTICULO->CONOS, 2 ) * oCol:Value, 2 ), oBrw:UnLock() ), nil ) } 
   END