Package systextil.rpt
Class RptPipelineDataSource
java.lang.Object
systextil.rpt.ColumnsInRowsReader
systextil.rpt.RptPipelineReader
systextil.rpt.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
- Cada coluna tem obrigatoriamente um nome. Tanto faz em maiúsculas ou minúsculas.
- 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.)
- 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.
-
Field Summary
Fields inherited from class systextil.rpt.ColumnsInRowsReader
row, rowNumber
-
Constructor Summary
ConstructorsConstructorDescriptionRptPipelineDataSource
(Reader reader) Cria uma fonte de dados que força para maiúsculas os nomes dos campos lidos.RptPipelineDataSource
(Reader reader, boolean forceUpperCaseFieldNames) Cria uma fonte de dados baseada na leitura de dados de um pipeline de RPT - que geralmente é um arquivo TXT.RptPipelineDataSource
(Reader reader, boolean forceUpperCaseFieldNames, Iterable<String> headers) Cria uma fonte de dados baseada na leitura de dados de um pipeline de RPT - que geralmente é um arquivo TXT.RptPipelineDataSource
(Reader reader, boolean forceUpperCaseFieldNames, String headers) Cria uma fonte de dados baseada na leitura de dados de um pipeline de RPT - que geralmente é um arquivo TXT. -
Method Summary
Modifier and TypeMethodDescriptiongetFieldValue
(net.sf.jasperreports.engine.JRField jrf) Retorna para o iReport o valor de um campo no registro atual.Methods inherited from class systextil.rpt.RptPipelineReader
next
Methods inherited from class systextil.rpt.ColumnsInRowsReader
getBigDecimal, getCurrentRowNumber, getDate, getDouble, getInt, getString, getTime
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.sf.jasperreports.engine.JRDataSource
next
-
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 dadosforceUpperCaseFieldNames
- 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 dadosforceUpperCaseFieldNames
- 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 dadosforceUpperCaseFieldNames
- 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
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 interfacenet.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
-