Start a conversation

Gerando seu próprio exportador de registros em XML.

Utilizaremos uma aplicação de controle para gerar a funcionalidade de exportação de dados do banco de dados para arquivo XML.
O código informado abaixo, poderá ser usado tanto no evento onload, como no evento onvalidade.

 

 

Para gerar um arquivo XMl com os registros de sua base de dados, será necessário:

- Abrir um arquivo com extensão XML usando o comando fopen().
- Gravar o cabeçalho do arquivo usando o comando fwrite().
- Varrer a tabela ou tabelas (inner join) enquanto grava no arquivo.
- Gravar o rodape do arquivo usando o comando fwrite().
- Fechar o arquivo, usando o comando fclose().
- Gerar um link em tela, chamando o arquivo .xml.


* Para ficar o arquivo .xml compativel com charset ISO, será necessário que seu projeto esteja nesse memo charset.




Primeira Etapa: Abrir um arquivo com extensão XML usando o comando fopen().


- Crie variaveis que irão receber caminho e nome do arquivo xml a ser gerado.

Ex.
$diretorio='./doc';


- Utilize o comando 'file_exists()' para identificar se o caminho informado existe localmente em seu servidor.
Caso negativo, crie a pasta usando o comando 'mkdir()'.

if(!file_exists('./doc')) {
mkdir($diretorio);
}


* A função file_exists() aceita o recebimento de string ou variaveis.


- Abra o arquivo usando o comando fopen() do PHP.

$arquivo=$diretorio.'/netmake.xml';
$fp = fopen($arquivo, 'w');


* A variavel $fp será usada na passagem de parametro do comando fwrite() e fclose() usados a seguir.




Segunda Etapa: Gravar o cabeçalho do arquivo usando o comando fwrite().

O cabeçalho (header) é iniciado por ''
O memso deve receber dados da versão e charset usado.

Ex.

O cabeçalho deve levar um tag coma descrição do seu arquivo.

Ex.

 


Poderá passar a string acima diretamente na função fwrite() ou poderá grava-la em variavel local.

* O comando fwrite() aceita string ou variaveis.

Ex.
fwrite($fp, 'Valor da string');



Terceira Etapa: Varrer a tabela ou tabelas (inner join) enquanto grava no arquivo.

Nessa etapa será necessário varrer a sua tabela, usando a macro sc_lookup() ou sc_select().

http://downloads.scriptcase.net/downloads/v5/manual/pt_br/webhelp/manual_mp/28-Macros/00-macros_sc.htm#sc_lookup
http://downloads.scriptcase.net/downloads/v5/manual/pt_br/webhelp/manual_mp/28-Macros/00-macros_sc.htm#sc_select


O valor deve ser gravado dentro de um tag < /> muito parecido com o html.

Ex.

valor



O retorno do seu 'SELECT SQL' deverá ser concatenado junto com uma string que torna identificavel o seu valor no xml.

Ex.
sc_lookup(retorno_lookup, 'SELECT campo1 FROM tabela');
$variavel=''.{retorno_lookup[0][0]}.'';



Os campos do seu xml, poderá ser agrupado em grupo.





Ex.
sc_lookup(retorno_lookup, 'SELECT campo1, campo2 FROM tabela');
$variavel='';

$variavel.=''.{retorno_lookup[0][0]}.'';
$variavel.=''.{retorno_lookup[0][1]}.'';

$variavel.='';


$variavel.='';

$variavel.=''.{retorno_lookup[0][0]}.'';
$variavel.=''.{retorno_lookup[0][1]}.'';

$variavel.='';

fwrite($fp, $variavel);



Poderá passar a string acima diretamente na função fwrite() ou poderá grava-la em variavel local.

* O comando fwrite() aceita string ou variaveis.

 

 

Quarta Etapa: Gravar o rodape do arquivo usando o comando fwrite().

Use o comando fwrite() para gravar o rodapé refernte ao seu descritor inserido no cabeçalho.

Ex.

fwrite($fp, '');

 


Quinta Etapa: Fechar o arquivo, usando o comando fclose().

Use o comando fclose() para fechar o arquivo.
Informe como parametro, a variavel usada ao criar o arquivo pela função fopen().

Ex.
fclose($fp);


Exemplo de código final:


 

Sexta Etapa: Gerar um link em tela, chamando o arquivo .xml.

Será necessário usar comando html para exibir o link que baixará ou visualizará o arquivo xml gerado.

Use a tag para tornar um texto link do arquivo.

Ex.
Texto

Baixar documento


Poderá ser usado a atribuição a campo label ou comando echo para exibir o html em tela.

echo 'Código Html ';
{campo}='Código Html ';

 

Exemplo de link html na tela da aplicação controle:

 

* Caso deseje aumentar a quantidade de linhas entre um valor e outro do xml, grave o valor
usando a função fwrite().

Ex.
fwrite($fp, '
');

Choose files or drag and drop files
Was this article helpful?
Yes
No
  1. Ronyan Alves

  2. Posted

Comments