4D Write Pro – Detección de modificación de documentos

Cuando un documento de 4D Write Pro está en modo de edición, a menudo es útil saber si realmente ha sido modificado por el usuario final. Basándose en esta información, las acciones o las interfaces pueden ajustarse para que sean más fáciles de usar.

A partir de 4D v19 R7, esto es ahora más fácil que nunca.

BASE DE DATOS DEMO

DOCUMENTOS MODIFICADOS

Un documento puede ser modificado de diferentes maneras. O bien

  • mediante la programación utilizando uno de los muchos comandos o
  • por el propio usuario final.

Por lo general, un documento modificado debe ser guardado, ya sea en términos de contenido (adición, modificación, supresión de texto, tablas o imágenes…) o de apariencia (estilo, márgenes, orientación, colores…).

En cualquier caso, hay que poder ofrecer la posibilidad de guardarlo a través de un botón o un menú, y en el caso extremo de que el usuario quiera irse sin haberlo guardado, poder ofrecerle una opción de recuperación («¿quieres guardar…?»).

Esto se hace ahora muy rápidamente probando el nuevo documento. Atributo modified.

El principio de este atributo es sencillo. Cuando se crea o se carga el documento, su valor se establece en False. Luego, en cuanto se modifica el documento (por programación o por acción del usuario), el valor cambia automáticamente a True.

De este modo, resulta sencillo tomar las decisiones correctas 🙂

  • Actualizar la interfaz
	OBJECT SET ENABLED(*; "btnSave";WParea.modified) // true or false
  • Confirmar el guardado
If (Form event code=On Unload)
	If (WParea.modified)
		CONFIRM("Would you like to save the document ?"; "Save"; "Discard")
		If (ok=1)
			// do what you have to do
		End if 
	End if 
End if 

Ya sea un espacio eliminado o una coma añadida, un solo carácter en negrita o en cursiva, establecerá el documento. modified en True. Incluso en caso de deshacer, el documento.modified seguirá siendo True.

Sin embargo, es posible forzar el valor de este atributo mediante programación, por ejemplo, una vez que el documento ha sido guardado.

If (WParea.modified)
	// save document
	// (…)
	// then set the status to false
	WParea.modified:=False  // will stay false until next document modification
End if 

… ¿O NO SE MODIFICA?

Algunas acciones sólo pueden cambiar la apariencia de los documentos sin cambiar realmente el contenido del documento; son las propiedades de la vista.

Puede cambiar el factor de zoom, mostrar o no las reglas horizontales y verticales, elegir mostrar los caracteres invisibles, las fórmulas, los encabezados o los pies de página, etc. Nada de esto se guardará. Esto significa que el documento no se modifica y, por lo tanto, el atributo document.modified sigue siendo False. Consulte la documentación sobre este nuevo atributo.

Conclusión

Esta nueva y sencilla propiedad detectará rápidamente los cambios dentro de un documento y realizará las acciones correspondientes. Ya sea de forma transparente (realizando guardados automáticos cuando un documento permanece abierto, por ejemplo) o modificando la interfaz de forma inteligente según las circunstancias.

Roland Lannuzel
- Propietario de Producto y Experto en 4D - Después de estudiar electrónica, Roland se dedicó a la informática industrial como desarrollador y consultor, construyendo soluciones para clientes con una variedad de bases de datos y tecnologías. A finales de los años 80 se enamoró de 4D y lo ha utilizado para escribir aplicaciones de negocio que incluyen sistemas de contabilidad, facturación y correo electrónico.Eventualmente se unió a la compañía en 1997, las valiosas contribuciones de Roland incluyen el diseño de especificaciones, herramientas de prueba, demos, así como la formación y hablar con la comunidad 4D en muchas conferencias. Continúa dando forma activamente al futuro de 4D definiendo nuevas características y herramientas de desarrollo de bases de datos.