CSVGenerator

De BIS Wiki
Revisão de 21h46min de 4 de setembro de 2017 por Rodrigogml (discussão | contribs) (Criou página com 'O '''CSVGenerator''' tem o objeto de permitir a geração de arquivos CSV a partir da estrutura de dados utilizada pelo BIS. Aproveito a estrutura dos VOs e BISMetaObjects (VO...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

O CSVGenerator tem o objeto de permitir a geração de arquivos CSV a partir da estrutura de dados utilizada pelo BIS. Aproveito a estrutura dos VOs e BISMetaObjects (VO_), isto é, aceita uma lista de VOs, e gera o arquivo CSV a partir das colunas selecionadas de dentro desses objetos.

Para exemplificar o funcionamento de todas as partes do CSVGenerator vamos imaginar que queremos exportar como CSV nosso cadastro de pessoas, lista de PersonVO.

CSVGeneratorOptions

O CSVGeneratorOptions carrega praticamente toda a configuração de como o arquivo deve ser gerado. Desta forma é possível realizar toda a definição em qualquer cama (UI por exemplo) e passar para o gerador de uma única vez. Permite que seja criado um componente único para manipular o objeto para as UIs e reaproveitado em todas as telas, útil principalmente quando o gerador ganha novas opções.

Entre as configurações básicas do arquivo estão:

  • Delimitador - utilizado para separar os campos do arquivo
  • Localidade - Define a localidade para formatação básica dos valores, como caractere de decimais, data, etc.
  • Títulos das Colunas - Define se deve ser escrito uma linha no começo com os títulos das colunas.
  • Valor de Nulo - Valor que deve ser utilizado caso o objeto tenha um valor nulo. Por padrão não é escrito nada, o equivalente á "", mas pode ser necessário distinguir o "" do null.

CSVGenerator

Todos os atributos de configuração já tem um valor padrão, de forma que para gerar um CSV, basta definir as colunas desejadas e passar a coleção de dados no método .generate().


Exemplos de Uso
    // Define as colunas no options
    options.setColumns(new String[]{
        PersonVO_.VO.displayname(),
        PersonVO_.VO.fullname(), 
        PersonVO_.VO.cpfcnpj()
    });

    final CSVGenerator<PersonVO> gen = new CSVGenerator<PersonVO>(options); //Construtor vazio cria um CSVGeneratorOptions com a opções padrão. Mas depois tem que pegar o options para colocar as colunas ou terá um CSV vazio.

    return gen.generate(personList); //Retorna o CSV com as colunas selecionadas.


O arquivo foi gerado, mas muitas vezes não é o que desejamos. Agora para formatar, configurar e manipular os dados é que precisará de configurações adicionais.


Formatando os Dados