In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

tDBEditButton vs tEditButton

Foro de Xailer profesional en español
Responder
Avatar de Usuario
bingen
Mensajes: 581
Registrado: Lun Jul 07, 2014 8:17 pm
Ubicación: Bilbao
Contactar:

tDBEditButton vs tEditButton

Mensaje por bingen »

Buenas xTeam, tengo un dilema.

Necesito un tDbEditButton para preguntar por la impresora de tickets y guardarla en una tabla, lo pongo y funciona bien saca la lista elijo una y la guarda en el campo de la tabla.
Pero si pongo la propiedad lEditable a .F. (para que no escriban a mano) el BtnEditButton solo funciona la primera vez, cuando está vacio, pero a partir de que el campo tiene ya un valor el botón no hace ni caso.

En cambio si es un tEditButton ya no hay una propiedad lEditable sino otra lReadOnly que pongo a .T. con lo cual ya no deja escribir, pero el botón funciona perfectamente todo el rato.
Ahora es labor mia grabar ese campo en la tabla de forma manual.

Por que hay esta disparidad de funcionamiento entre ambos controles, siendo más lógico el del segundo, creo yo.

Gracias.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: tDBEditButton vs tEditButton

Mensaje por ignacio »

Buenas Bingen,

lEditable es una propiedad ligada al Datacontrol básicamente, mientras que lReadonly es un a propiedad intrínseca del control que nada tiene que ver con los datacontrols. De hecho se podría prescindir completamente de la propiedad lReadOnly cuando se utilizan los controles TDB?????. Como es una propiedad que se puso más tarde preferimos no quitar lReadonly para no romper el código de nadie.

Si lEditable está a falso, el botón no debería de funcionar ni siquiera la primera vez. Entiendo que ese es el comportamiento correcto.

Acabo de comprobar el ejemplo DataControls1 cambiando el primer campo a tipo TDBEditBtn y dejando en blanco el primer registro. Luego establezco lEditable a falso e intento hacer un 'Edit' y compruebo que el botón no funciona, por lo que entiendo es correcto.

Viendo el código del método Click se ve claramente que no depende de que esté en blanco o no:

Código: Seleccionar todo

METHOD Click() CLASS XDBEditBtn

   IF ::lReadOnly
      ::nBtnState := 1
      RETURN Nil
   ENDIF

RETURN ::Super:Click()
Un saludo
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
bingen
Mensajes: 581
Registrado: Lun Jul 07, 2014 8:17 pm
Ubicación: Bilbao
Contactar:

Re: tDBEditButton vs tEditButton

Mensaje por bingen »

Volveré a probarlo a ver.

Gracias y salu2.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
Responder