Grazie a 4D v17 R3, è possibile esportare il file della struttura in più file di testo. Ad esempio, con poche righe di codice è possibile creare una copia del database ogni mattina. Potete usarla per tenere traccia della cronologia o per inviare il database a un collega e vedere le modifiche quando ha finito di lavorarci.
Vi forniamo un componente pronto all’uso con due soli metodi: uno per configurare i dati da esportare e l’altro per esportare il database.
Codice sorgente del componente
Configurazione dei dati
In questo componente, il metodo “OpenDialConfigExport” mostra un’interfaccia per configurare l’esportazione. Il risultato viene salvato in un file JSON accanto alla struttura del database host.
Ad esempio, si esegue:
// Display the configuration dialog
OpenDialConfigExport
Quindi si selezionano gli elementi da esportare:
Quando si fa clic sul pulsante “Salva”, viene creato il seguente file “configExport.json”.
{ "withLog": "ifNotEmpty", "filter": { "projectMethods": true, "databaseMethods": true, "triggerMethods": false, "forms": true, "catalog": true, "folders": false, "settings": false, "menus": false, "tips": false, "lists": false, "filters": false, "pictures": false, "resources": false, "trash": false, "windowPositions": false, "methodPreferences": false } }
Non è necessario eseguire questo comando. Se il file di configurazione non esiste, viene esportato l’intero file di struttura.
Esportazione della struttura
Per esportare il file della struttura, utilizzare il metodo del componente ExportStructure. Passare come parametro la cartella in cui viene esportato il contenuto.
Ad esempio, si vuole esportare una copia del codice in una cartella denominata “YY-MM-DD hh-mm-ss”.
Scrivere il seguente codice:
C_TEXT($path)
$path :=System folder(Documents folder)+"Export "+Folder separator\
+Path to object(Structure file).name+Folder separator\
+Replace string(Replace string(String(Current date;ISO date;Current time);":";"-"); "T";" ")+Folder separator
If (Test path name($path)#Is a folder)
CREATE FOLDER ($path;*)
End if
ExportStructure ($path)