Graças ao 4D v17 R3, pode exportar o seu ficheiro de estrutura em múltiplos ficheiros de texto. Por exemplo, com apenas algumas linhas de código, pode criar uma cópia da sua base de dados todas as manhãs. Pode utilizá-la para acompanhar o histórico ou para enviar a sua base de dados a um colega e ver as alterações quando terminarem de trabalhar na mesma.
Fornecemos-lhe um componente pronto a usar com apenas dois métodos: um para configurar os dados a exportar, e o outro para exportar a sua base de dados.
Configurar os dados
Neste componente, o método “OpenDialConfigExport” apresenta uma interface para configurar a sua exportação. O resultado é guardado num ficheiro JSON ao lado da estrutura da base de dados anfitriã.
Por exemplo, executa-se:
// Display the configuration dialog
OpenDialConfigExport
Depois, selecciona os elementos a exportar:
Ao clicar no botão “Save”, é criado o seguinte ficheiro “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 } }
Não precisa de executar este comando. Se o ficheiro de configuração não existir, todo o ficheiro de estrutura é exportado.
Exportar a estrutura
Para exportar o ficheiro de estrutura, utilizar o método de componentes ExportStructure. Passar a pasta onde o conteúdo é exportado como parâmetro.
Por exemplo, pretende exportar uma cópia do seu código numa pasta chamada “YY-MM-DD hh-mm-ss”.
Basta escrever o seguinte código:
C_TEXT($path)
$path :=System folder(Documents folder)+"Exportar "+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)