Páginas filhas
  • _ADVPL_ExportArrayToExcelXML


Exportar os dados contidos em uma variável ARRAY OF RECORD para uma planilha excel no formato XML, no mesmo formato de planilhas exportadas a partir dos GRIDs metadado.

(informação) A extensão do arquivo de saída será .XML no formato Open XML Document e pode ser aberto para visualização com ferramenta Excel ou outra ferramenta de edição/visualização de planilhas neste formato XML.

RESTRIÇÃO DE USO


O uso desta função está restrito para uso em processos no modo gráfico até o pacote 12.1.2411, ou seja, não pode ser utilizada em modo JOB ou TELNET devido a uso de funções de cálculo de tamanho de fontes disponíveis apenas no modo gráfico.

A partir do pacote 12.1.2503 a função pode ser utilizada também para processos JOB ou TELNET.

Sintaxe


_ADVPL_ExportArrayToExcelXML( < u4GLRec >, < cXMLFilePath >, < cTitle >, < cColumns >, < nRowsCount > )

Parâmetros


Nome

Tipo

Obrigatório?

Descrição

u4GLRec

ARRAY OF RECORD

Sim

Variável 4GL do tipo ARRAY OF RECORD que contém os dados a serem exportados.

cXMLFilePath

CHAR

Não

Caminho completo do arquivo a ser gravado no servidor. Se for enviado nome de arquivo sem extensão, irá assumir extensão ".xml".

(aviso)  Se não for enviado um caminho de diretório, o valor do parâmetro deverá ser NULL. Neste caso a função irá considerar automaticamente a pasta de destino como uma pasta temporária do AppServer.

(aviso)  Se for informado um caminho de diretório inválido ou não existente no servidor, a função será interrompida, retornando valor NULL, indicando que houve algum problema na extração dos dados.

cTitle

CHAR

Não

Texto a ser incluído como título no conteúdo dos dados exportados no excel.

Este texto será o título na primeira linha da planilha.

(aviso) ATENÇÃO! Quando informar o parâmetro cAttr para considerar TODOS os atributos (cAttr = NULL), o valor a ser informado aqui deverá respeitar o tipo de dado para todos os atributos do RECORD 4GL. O valor NULL é válido para qualquer tipo de dado entre os elementos de um RECORD 4GL.

cColumns

CHAR

Não

Lista com o nome dos elementos do array de record 4GL que deverão ser exportados. 

(informação) Informe NULL para considerar exportação de todos os elementos definidos no array de record.


FORMATO para cColumns:    

    • Quando quiser especificar lista de elementos do array de record e também um label pra cada uma deles

nomecoluna1^label coluna1|nomecoluna2^label coluna2  

    • Quando quiser especificar lista de elementos do array de record e também um label pra cada uma deles e ainda, opcionalmente, definir uma largura fixa para a coluna da informação (disponível a partir do pacote Logix 12.1.2503 ou Logix Framework 12.1.2411 (fix01))

nomecoluna1^label coluna1^largura coluna1 (em pixels)|nomecoluna2^label coluna2^^largura coluna2 (em pixels)

    • Quando não quiser especificar label, apenas a lista dos elementos do array de record que serão extraidos

nomecoluna1|nomecoluna2

    • Irá assumir automaticamente todos os elementos do array de record

NULL 

nRowsCount

INTEGER

Não

Número de linhas a serem exportadas do array, considerando sempre a linha inicial como 1.

(informação) Quando não informado será considerado todas as linhas.

Retorno


Nome

Tipo

Descrição

cXMLFilePath

CHAR

Caminho completo do arquivo com formato XML gerado no servidor. 

Caso tenha ocorrido qualquer tipo de erro durante a geração do arquivo ou extração dos dados do array, o retorno desta função será NULL.

Exemplo


DEFINE ma_dados ARRAY[3] OF RECORD
                            codigo SMALLINT,
                            texto  CHAR(10)
                            END RECORD

#-------------------------------------------#
 FUNCTION ExportArrayToExcelXML_test()
#-------------------------------------------#
  DEFINE l_xmlFile CHAR(300)

  LET ma_dados[1].codigo = 49
  LET ma_dados[1].texto  = 'linha 01'

  LET ma_dados[2].codigo = 27
  LET ma_dados[2].texto  = 'linha 03'

  LET ma_dados[3].codigo = 5
  LET ma_dados[3].texto  = 'linha 02'     

  #Exportar toda grid para um arquivo XML automatico no appserver
  LET l_xmlFile = _ADVPL_ExportArrayToExcelXML(ma_dados)
  CALL conout("PLANILHA 1 GERADA NO ARQUIVO "||l_xmlFile CLIPPED)

  #Exportar todos dados até a linha 2 da grid para um arquivo XML automatico no appserver e registrar o Titulo como "Exportação parcial até a linha 2"
  LET l_xmlFile = _ADVPL_ExportArrayToExcelXML(ma_dados,NULL,"Exportação parcial até a linha 2",NULL,2)
  CALL conout("PLANILHA 2 GERADA NO ARQUIVO "||l_xmlFile CLIPPED)
 
  #Exportar apenas o valor da coluna 1 com label "Primera Coluna" para todas linhas da grid para um arquivo XML de nome automático no appserver.
  LET l_xmlFile = _ADVPL_ExportArrayToExcelXML(ma_dados,NULL,NULL,"codigo^Primeira Coluna")
  CALL conout("PLANILHA 3 GERADA NO ARQUIVO "||l_xmlFile CLIPPED)
 
END FUNCTION

Informações


Fontes: array.prw

Observações


Disponível a partir do pacote Logix 12.1.2311.