Page 1 of 2

edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 10:57 am
by mastintin
Quiero poder consultar y editar rapido unos datos. Si uso xbrowser a secas no me permite su edición .
Si pongo FASTEDIT o SETUP ( oBrw:nEditTypes := EDIT_GET ) si permite la edición lo que pasa que permite la edición "en linea"
Quiero poder hacer la edición pero solo desde el "boton" de editar...
¿ como tengo que ponerlo ?
Code: Select all  Expand view


  local cOrdenes := Abrimos("ordenes")
   ( cOrdenes )-> (OrdSetFocus(1))
    XBROWSER AUTOSORT  //SETUP ( oBrw:nEditTypes := EDIT_GET )
   close ( cOrdenes )

 

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 12:00 pm
by acuellar
Manuel

Tendrías que hacerlo por columna no colocar el FastEdit
Code: Select all  Expand view

oCol:=oBrw:AddCol()
   oCol:bStrData  := { || NOMBRE }
   oCol:cHeader:= "NOMBRE"
   oCol:nWidth:=150
   oCol:cSortOrder:="NOMBRE"
   oCol:nEditType := EDIT_GET
   oCol:bOnPostEdit := {|o, v, n| NOMBRE:=v }
//Sólo funciona al pulsar Enter
//Podemos agregar otras teclas por Ej. F2
  oBrw:bKeyDown:={ |nKey| iif(nKey=VK_F2, __KeyBoard(Chr(13)) , )}
 


Saludos,

Adhemar

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 12:21 pm
by hmpaquito
Manuel,

Ahora que te pillo por aquí y con xBrowse, siendo tu un master de las imágenes... He probado un xBrowse mostrando imagenes que originalmente estan en formato .jpg y su tamaño es 800 x 800. Las muestro en un tamaño de 33 pix, y las muestra bien, pero el xbrowse se vuelve horriblemente lento... creo que el problema puede estar en la filoadimg() que tiene que hacer conversiones... y muchas... tantas como el xBrowse lo invoca.

¿ Crees que el problema es el que te indico ? ¿ Algun workaround ?

Saludos

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 2:18 pm
by mastintin
hmpaquito wrote:Manuel,

Ahora que te pillo por aquí y con xBrowse, siendo tu un master de las imágenes... He probado un xBrowse mostrando imagenes que originalmente estan en formato .jpg y su tamaño es 800 x 800. Las muestro en un tamaño de 33 pix, y las muestra bien, pero el xbrowse se vuelve horriblemente lento... creo que el problema puede estar en la filoadimg() que tiene que hacer conversiones... y muchas... tantas como el xBrowse lo invoca.

¿ Crees que el problema es el que te indico ? ¿ Algun workaround ?

Saludos


Dos cosas ...
1ª¿ es necesario enseñar las miniaturas en las celdas del xbrowse o servirí algo asi ?:
Image

2º si es necesario enseñar todas las miniaturas sería mucho mas rápido adaptar el xbrowse para que en vez usar filoadimg() para cargar los jpg use gdi+ y las reduzca a 33pix al vuelo , si el ordenador es medianamente moderno , eso aceleraría el xbrowse .
la funcion equivalente seria :

La funcion seria hBmpFromFile( cFile, nWith, nHeight ) en tu caso hBmpFromFile( cFile, 33 )

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 3:15 pm
by hmpaquito
Manuel,

Qué buena idea... me sirve de la primera forma, incluso me viene mejor.

Muchas gracias. saludos

pd. Desconocia la existencia de hBmpFromFile(). Supongo que esa funcion deberia ser incorporada al xBrowse para darle mayor velocidad.

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 3:58 pm
by hmpaquito
Manuel,

Pensando mejor sobre la segunda posibilidad y su solucion, creo que la solucion pasa por modificar el xBrowse para re-utilizar los hBmp, sea-la-funcion-de-lectura-del-jpg-la-que-sea.

La solucion pasaria por utilizar un hash con el nombre de la imagen a la que se le asignaria el hBmp. En oBrw:Destroy() se borrarian (deleteobject()) los hBmp. Asimismo, el calculo del HasAlpha() puede enlentecer... también se guardaría en el hash, de modo que el hash contendria tuplas con el siguiente valor {hBmp, lAlpha}


Saludos

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 4:50 pm
by cnavarro
A mi me funciona perfectamente sin añadir nada ( ni en el SETUP ), pero solo lo he usado con arrays
Edito con el boton de edicion nada mas

--------------------------------------- EDITADO ------------------------------------------

Lo he comprobado y no permite editar con bases de datos

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 8:27 pm
by nageswaragunupudi
mastintin wrote:Quiero poder consultar y editar rapido unos datos. Si uso xbrowser a secas no me permite su edición .
Si pongo FASTEDIT o SETUP ( oBrw:nEditTypes := EDIT_GET ) si permite la edición lo que pasa que permite la edición "en linea"
Quiero poder hacer la edición pero solo desde el "boton" de editar...
¿ como tengo que ponerlo ?
Code: Select all  Expand view


  local cOrdenes := Abrimos("ordenes")
   ( cOrdenes )-> (OrdSetFocus(1))
    XBROWSER AUTOSORT  //SETUP ( oBrw:nEditTypes := EDIT_GET )
   close ( cOrdenes )

 


Please try:
Code: Select all  Expand view

XBROWSER Alias() SETUP oBrw:bDataRow := { |o,c,l| TDataRow():New( o:uDataSource, c, l ) }
 

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 8:41 pm
by cnavarro
Ok, So it works well
Thanks

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 8:49 pm
by nageswaragunupudi
My solution is for the specific rather uncommon requirement of Mr Manuel.

For all normal purposes
XBROWSER <anydata> FASTEDIT
or
XBROWSER <anydata> AUTOSORT SETUP oBrw:nEditTypes := EDIT_DATA

work well for viewing and editing any data

Re: edicion con Xbrowser

PostPosted: Wed Apr 15, 2015 10:52 pm
by cnavarro
Mr Rao
Yo pienso que por defecto se deberia permitir editar con el boton "Edit" y usar FASTEDIT para Editar directamente si el usuario elige esa opcion
O implementar dos opciones distintas

Mr Rao
I think we should allow default edit the "Edit" button and use FASTEDIT to Edit directly if the user chooses that option
Or implement two different options
FASTEDIT and ....EDIT..

Re: edicion con Xbrowser

PostPosted: Thu Apr 16, 2015 6:55 am
by mastintin
¡¡Perfecto Sr.Rao !!!. Gracias.


Respecto al comportamiento creo que está bien que no permita editar por defecto pero deberiamos implementar un comando EDIT .
Mi propuesta para no mover casi el codigo es que el parametro lFastEdit pase a ser nEdit ...
nEdit := 0 -> no editable
nEdit:= 1 -> lFastEdit:= .t.
nEdit:= 2 -> editable

comandos a usar EDIT AND FASTEDIT seria algo asi :

# xcommand XBROWSER [<uData>] ;
[ TITLE <cTitle> ] ;
[ <autosort:AUTOSORT> ] ;
[ SETUP <fnSetUp> ] ;
[ COLUMNS <aCols,...> ] ;
[ SELECT <fnSelect> ] ;
[ <excel: CALC> ];
[ FASTEDIT] [ <nEdit: 1> ] ;
[ EDIT ] [ <nEdit: 2> ] ;
[ VALID <uValid> ] ;
[ [SHOW] <sl: RECID,SLNUM> ] ;
=> ;
XBrowse( [<uData>], [<cTitle>], [<.autosort.>], ;
[\{|oBrw|<fnSetUp>\}], [\{<aCols>\}], ;
[\{|oBrw,oCol|<fnSelect>\}],!<.excel.>, <nEdit>, [\{|oBrw|<uValid>\}], <(sl)> )

cambios en codigo de xbrowser ...

function XBrowse( uData, cTitle, lAutoSort, bSetUp, aCols, bSelect, lExcel, nEdit, ;
bValid, cSerial )
DEFAULT nEdit:= 0
.......

line 117+-

XBrwSetDataSource( oBrw, uData, lAddCols, lAutoSort, aCols ) // function in XBrowse.Prg
AEval( oBrw:aCols, { |o| If( o:cDataType == 'L', o:SetCheck(), nil ) } )

if nEdit == 1
oBrw:lFastEdit := .t.
AEval( oBrw:aCols, { |o| o:nEditType := 1 } )
elseif nEdit == 2
oBrw:bDataRow := { |o,c,l| TDataRow():New( o:uDataSource, c, l ) }
endif

......

Todo esto esta planteado al vuelo , como idea, no está probado ya que ahora mismo no estoy sobre el ordenador ...

Re: edicion con Xbrowser

PostPosted: Tue Aug 22, 2017 1:02 pm
by TOTOVIOTTI
Hola amigos,
necesito hacer un Xbrowser o xBrowse emulando al viejo DBU donde
se podía modificar los campos de una dbf, y no lo puedo hacer.
Probé con FASTEDIT, SETUP y todo lo que sugieren pero no lo puedo hacer que me edite
y grabe.
Quien me pueda ayudar se lo agradeceré!
Roberto

Re: edicion con Xbrowser

PostPosted: Tue Aug 22, 2017 4:25 pm
by joseluisysturiz
TOTOVIOTTI wrote:Hola amigos,
necesito hacer un Xbrowser o xBrowse emulando al viejo DBU donde
se podía modificar los campos de una dbf, y no lo puedo hacer.
Probé con FASTEDIT, SETUP y todo lo que sugieren pero no lo puedo hacer que me edite
y grabe.
Quien me pueda ayudar se lo agradeceré!
Roberto

Coloca codigo de como definistes el xBrowse para poder ayudarte, gracias...saludos... :shock:

Re: edicion con Xbrowser

PostPosted: Tue Aug 22, 2017 6:19 pm
by TOTOVIOTTI
Disculpas... pero uso de la siguiente manera:

XBROWSER cAlias FASTEDIT

Gracias
Roberto