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.
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 |
| Sim | Variável 4GL do tipo ARRAY OF RECORD que contém os dados a serem exportados. |
cXMLFilePath |
| 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". 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. 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 |
| 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. 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 |
| Não | Lista com o nome dos elementos do array de record 4GL que deverão ser exportados. Informe NULL para considerar exportação de todos os elementos definidos no array de record.
nomecoluna1^label coluna1|nomecoluna2^label coluna2
nomecoluna1^label coluna1^largura coluna1 (em pixels)|nomecoluna2^label coluna2^^largura coluna2 (em pixels)
nomecoluna1|nomecoluna2
NULL |
nRowsCount |
| Não | Número de linhas a serem exportadas do array, considerando sempre a linha inicial como 1. Quando não informado será considerado todas as linhas. |
Retorno
Nome | Tipo | Descrição |
---|---|---|
cXMLFilePath |
| 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.