Páginas filhas
  • _ADVPL_UnloadArrayToFile


Exportar os dados contidos em uma variável ARRAY OF RECORD para um arquivo no formato texto, permitindo selecionar as colunas e quantidade de linhas a exportar.

ATENÇÃO! O formato para valores numéricos que contenham valores decimais, usará como separador de casas decimais a vírgula ou ponto, conforme estiver configurado a variável de ambiente DBMONEY para o AppServer.

Sintaxe


_ADVPL_UnloadArrayToFile( < u4GLRec >, < cFilePathServer >, < cDelimiter >, <cDelimiterSubstitute>, < 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.

cFilePathServer

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 ".unl" (unload file).

(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.

cDelimiter

CHAR

Não

Character ou conjunto de caracteres que serão considerados como delimitador entre as colunas de dados.

(informação) Informe NULL para considerar o delimitador padrão como "|" (pipe).

cDelimiterSubstitute

CHAR

Não

Caso o delimitador informado no parâmetro cDelimiter for encontrado no conteúdo de algum dado a ser exportado, informe, se desejar, algum caracter ou conjunto de caracteres de substituição.

(informação) Se informar NULL irá apenas extrair do conteúdo da coluna que coincidir com o conteúdo do delimitador indicado no parâmetro cDelimiter.

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:    

    • lista dos elementos do array de record que serão extraídos, separados por "|" (pipe)

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

cFilePathServer

CHAR

Caminho completo do arquivo exportado 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 UnloadArrayToFile_test()
#-------------------------------------------#
  DEFINE l_csvFile 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 automatico no appserver com extensão UNL, usando o delimitador como #!#
  LET l_exportFile = _ADVPL_UnloadArrayToFile(ma_dados,"#!#")
  CALL conout("PLANILHA 1 GERADA NO ARQUIVO "||l_exportFile CLIPPED)

  #Exportar todos dados até a linha 2 da grid para um arquivo automatico no appserver com extensão UNL, usando o delimitador padrão "|"
  LET l_exportFile = _ADVPL_UnloadArrayToFile(ma_dados,NULL,NULL,2)
  CALL conout("PLANILHA 2 GERADA NO ARQUIVO "||l_exportFile CLIPPED)
 
  #Exportar todas as linhas, apenas o valor da coluna 1 para um arquivo de nome automático no appserver com extensão UNL, usando o delimitador padrão "|"
  LET l_exportFile = _ADVPL_UnloadArrayToFile(ma_dados,NULL,"codigo")
  CALL conout("PLANILHA 3 GERADA NO ARQUIVO "||l_exportFile CLIPPED)
END FUNCTION

Informações


Fontes: array.prw

Observações


Disponível a partir do pacote Logix 12.1.2311.