Package systextil.rpt

Class RptPipelineDataSource

All Implemented Interfaces:
net.sf.jasperreports.engine.JRDataSource

public class RptPipelineDataSource extends RptPipelineReader implements net.sf.jasperreports.engine.JRDataSource
Implementa uma fonte de dados para relatórios Jasper que lê arquivos TXT que foram gerados em pipelines para processar RPT. Fornece uma opção para que se utilizem leiautes Jasper como saída para esse tipo de fontes de dados.

Para que os dados possam ser lidos e interpretados, é necessário que a primeira linha da fonte de dados contenha a definição das colunas. Talvez um exemplo baste:

cod_produto|data_entrada:d|quantidade:n:Quantidade proposta para o relatório

  1. Cada coluna tem obrigatoriamente um nome. Tanto faz em maiúsculas ou minúsculas.
  2. Cada coluna pode ter um tipo definido por um caractere. Tanto faz em maiúsculas ou minúsculas.
    • n: numeric (número inteiro)
    • f: float (número fracionário)
    • a: amount (valor monetário ou decimal)
    • d: date (data)
    • t: time (hora)
    • s: string (qualquer texto; este é o valor padrão e pode ser omitido.)
  3. Cada coluna pode ter uma descrição, que estará disponível na lista de campos no editor iReport.

A leitura dos campos (colunas) disponíveis no iReport executa algumas consistências, para evitar que as colunas e seus tipos sejam acidentalmente mal definidos.

  • Constructor Details

    • RptPipelineDataSource

      public RptPipelineDataSource(Reader reader, boolean forceUpperCaseFieldNames) throws net.sf.jasperreports.engine.JRException
      Cria uma fonte de dados baseada na leitura de dados de um pipeline de RPT - que geralmente é um arquivo TXT.

      Executa imediatamente a leitura da primeira linha, a qual contém os conteúdos dos cabeçalhos das colunas, isto é, os nomes e os tipos de dados.

      Parameters:
      reader - a origem dos dados
      forceUpperCaseFieldNames - se os nomes dos campos serão disponibilizados em maiúsculas, para fontes de dados TXT comuns. Quando simular a leitura de JavaBeans usando arquivo TXT, não deve forçar os nomes dos campos para maiúsculas.
      Throws:
      net.sf.jasperreports.engine.JRException - se a fonte de dados não tem dados
    • RptPipelineDataSource

      public RptPipelineDataSource(Reader reader, boolean forceUpperCaseFieldNames, Iterable<String> headers) throws net.sf.jasperreports.engine.JRException
      Cria uma fonte de dados baseada na leitura de dados de um pipeline de RPT - que geralmente é um arquivo TXT.
      Parameters:
      reader - a origem dos dados
      forceUpperCaseFieldNames - se os nomes dos campos serão disponibilizados em maiúsculas, para fontes de dados TXT comuns. Quando simular a leitura de JavaBeans usando arquivo TXT, não deve forçar os nomes dos campos para maiúsculas.
      headers - os nomes das colunas (campos) - que não estão embutidos no arquivo TXT
      Throws:
      net.sf.jasperreports.engine.JRException - se a fonte de dados não tem dados
    • RptPipelineDataSource

      public RptPipelineDataSource(Reader reader, boolean forceUpperCaseFieldNames, String headers) throws net.sf.jasperreports.engine.JRException
      Cria uma fonte de dados baseada na leitura de dados de um pipeline de RPT - que geralmente é um arquivo TXT.
      Parameters:
      reader - a origem dos dados
      forceUpperCaseFieldNames - se os nomes dos campos serão disponibilizados em maiúsculas, para fontes de dados TXT comuns. Quando simular a leitura de JavaBeans usando arquivo TXT, não deve forçar os nomes dos campos para maiúsculas.
      headers - os nomes das colunas (campos) convenientemente concatenados pelo caractere de pipe ("|") - não embutidos no arquivo TXT
      Throws:
      net.sf.jasperreports.engine.JRException - se a fonte de dados não tem dados
    • RptPipelineDataSource

      public RptPipelineDataSource(Reader reader) throws net.sf.jasperreports.engine.JRException
      Cria uma fonte de dados que força para maiúsculas os nomes dos campos lidos.
      Parameters:
      reader - a origem dos dados
      Throws:
      net.sf.jasperreports.engine.JRException - se a fonte de dados não tem dados
  • Method Details

    • getFieldValue

      public Object getFieldValue(net.sf.jasperreports.engine.JRField jrf) throws net.sf.jasperreports.engine.JRException
      Retorna para o iReport o valor de um campo no registro atual.
      Specified by:
      getFieldValue in interface net.sf.jasperreports.engine.JRDataSource
      Parameters:
      jrf - os dados correspondentes ao campo a ler
      Returns:
      o valor do campo no tipo Java conforme foi especificado, isto é: Integer, Double, BigDecimal, Date, Time ou String. Se o campo não tiver dados ou estiver em branco, retorna null.
      Throws:
      net.sf.jasperreports.engine.JRException - se algo der errado