Relatórios
Introdução
A visualização das consultas automatizadas utilizando DataSource
se dá pelo uso de
classes especializadas de Visualization, ou DSV (arquivos “.idsv”). Segue abaixo um exemplo
simples de como utilizar o DSV.
Criando a fonte de dados (.ids)
{
includes: [
-1897036629 //IQuery.ijs
],
help: "Help do DataSource",
availableFilters: [
{
classKey: -2008879000 /* Pedidos ou Provisões */,
prefix: "PED",
options: {}
}
],
availableColumns: [
{
classKey: -2008879000 /* Pedidos ou Provisões */,
prefix: "PED"
}
],
// Chamado durante a construção do DataSource.
onCreate: function (dataSource) {
var flt = dataSource.filters.filter("PED_EMISSAO_START")
flt.help = "Data de Emissão Inicial"
var flt = dataSource.filters.filter("PED_EMISSAO_END")
flt.help = "Data de Emissão Final"
},
onGetQuery: function (dataSource, filters, columns) {
var flts = filters.getIQueryFilters( "PED_*", "and" )
var cols = columns.getIQueryColumns( "PED_*" )
var iquery = IQuery.from( -2008879000 /* Pedidos ou Provisões */ )
.where(flts)
.column(cols)
return iquery.toSql()
}
}
É o possível testar um IDS no IDBCSql. Segue abaixo um exemplo:
var dataSource = new DataSource( 38401590 /* Pedidos.ids */ )
var filtros= dataSource.createFilters([
{ name: "PEDIDO_EMISSAO_START", value: new Date() },
{ name: "PEDIDO_EMISSAO_END", value: new Date() }
])
var colunas= dataSource.createColumns([
{ name: "PEDIDO_RECURSO.NOME"},
{name: "PEDIDO_EMISSAO"}
])
dataSource.getDataSet( filtros, colunas )
Criando a consulta na fonte de dados (.idsq)
No IDSQ é possível retirar filtros e colunas que estão definidas no IDS ou adicionar filtros e colunas que não estão no IDS, mas que podem serem derivados a partir de um filtro ou coluna do IDS.
{
dataSourceKey: 39050662 /* Pedidos_Exemplo.ids */,
useAllFilters: false, // default true,
useAllColumns: false, // default true,
filters: [
{name: 'PEDIDO_PESSOA'},
{name: 'PEDIDO_EMISSAO_START'},
{name: "PEDIDO_LOCESCRITU"}
],
columns: [
{name: 'PEDIDO_PESSOA.NOME', alias:"N_PESSOA"},
{name: 'PEDIDO_ESTABELECI.NOME', alias:"N_ESTE"},
{name: 'PEDIDO_EMISSAO'},
{name: 'PEDIDO_TOTAL'}
]
}
Criando a visualização da fonte de dados (.idsv)
A API do IDSV é uma API aberta que varia de acordo com o tipo de Visualization. O exemplo abaixo configura o um IDSV para o Visualization do tipo Report.
{
dataSourceQueryKey: 39050629,
type: "report",
// Propriedades alteráveis das variáveis do simpleLayout:
// label , order, required e column
filters: [
{name: "PEDIDO_PESSOA", required: false, order: 10, label: "Pessoa do Pedido"},
{name: "PEDIDO_EMISSAO_START", order: 15, label: "Emissão Inicial"},
{name: "PEDIDO_EMISSAO_END", order: 20, label: "Emissão Final"},
{name: "PEDIDO_PROGRAMACA", order: 25, label: "Programados para"},
{name: "PEDIDO_LOCESCRITU", order: 30, label: "Local de Escrituração"}
],
columns: [
{name: 'PEDIDO_PESSOA.NOME', label:"Pessoa do Pedido", useToGroup: true},
{name: 'PEDIDO_ESTABELECI.NOME', label:"Estabelecimento", useToGroup: true},
{name: 'PEDIDO_EMISSAO', label:"Emissão"},
{name: 'PEDIDO_TOTAL', label:"Total", simpleLayoutAggregate: "sum"}
]
}