4D Write Pro – Detecção de modificação de documentos

Quando um documento 4D Write Pro está em modo de edição, é muitas vezes útil saber se foi realmente modificado pelo utilizador final. Com base nesta informação, as acções ou interfaces podem ser ajustadas para serem mais fáceis de utilizar.

Começando com 4D v19 R7, isto é agora mais fácil do que nunca.

BASE DE DADOS DEMO

DOCUMENTOS MODIFICADOS

Um documento pode ser modificado de diferentes maneiras. Qualquer uma delas:

  • programando usando um dos muitos comandos ou
  • pelo próprio utilizador final.

Um documento modificado deve geralmente ser guardado, quer em termos de conteúdo (adição, modificação, eliminação de texto, tabelas, ou imagens…), quer de aparência (estilo, margens, orientação, cores…).

Em qualquer caso, deve poder oferecer a possibilidade de o guardar através de um botão ou de um menu, e no caso extremo em que o utilizador gostaria de sair sem o ter guardado, deve poder oferecer-lhe uma opção de recuperação (“quer guardar…?”).

Isto é agora feito muito rapidamente, testando o novo documento.modified atributo.

O princípio deste atributo é simples. Quando o documento é criado ou carregado, o seu valor é definido para False. Depois, assim que o documento é modificado (por programação ou acção do utilizador), o valor muda automaticamente para True.

Torna-se simples tomar as decisões correctas 🙂

  • Actualizar a interface
	OBJECT SET ENABLED(*; "btnSave";WParea.modified) // true or false
  • Confirmar salvar
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 

Quer seja um espaço apagado ou uma vírgula adicionada, um único carácter em negrito ou itálico, definirá o documento.modified a True. Mesmo no caso de um desfazer, o documento.modified permanecerá True.

No entanto, é possível forçar o valor deste atributo através da programação, por exemplo, uma vez que o documento tenha 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 

… … OU NÃO MODIFICADO?

Algumas acções só podem alterar a aparência dos documentos sem realmente alterar o conteúdo do documento; estas são as propriedades de visualização.

Pode alterar o factor de zoom, exibir ou não as réguas horizontais e verticais, escolher mostrar os caracteres invisíveis, fórmulas, cabeçalhos ou rodapés, etc. Nada disto será guardado. Isto significa que o documento não é modificado e, portanto, o documento.modified atributo permanece False. Ver a documentação sobre este novo atributo.

Conclusão

Esta propriedade nova e simples detectará rapidamente alterações dentro de um documento e executará acções em conformidade. Ou de forma transparente (fazendo salvamentos automáticos quando um documento permanece aberto, por exemplo) ou modificando a interface de forma inteligente de acordo com as circunstâncias!

Roland Lannuzel
- Proprietário do produto & Especialista 4D - Depois de estudar electrónica, a Roland entrou nas TI industriais como desenvolvedor e consultor, construindo soluções para clientes com uma variedade de bases de dados e tecnologias. No final dos anos 80, apaixonou-se pela 4D e utilizou-a para escrever aplicações comerciais que incluem sistemas de contabilidade, facturação e correio electrónico. Juntando-se à empresa em 1997, as valiosas contribuições de Roland incluem a concepção de especificações, ferramentas de teste, demonstrações, bem como formação e palestras para a comunidade 4D em muitas conferências. Ele continua a moldar activamente o futuro da 4D, definindo novas características e ferramentas de desenvolvimento de bases de dados.