DataSourceVisualization com a funcionalidade pivot
Data de postagem: May 18, 2010 9:32:23 PM
Criando o IDS:
{
includes: [
-1897036629 /* /products/INTEQengine/library/iquery/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 Exemplo000_onCreate(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 Exemplo000_onGetQuery(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()
}
}
Criando o IDSQ:
{
dataSourceKey: 40108470 /* /products/custom/Testes/paulorogerio/datasource/Exemplo 001.ids */,
filters: [
{name: "PED_EMISSAO_START"},
{name: "PED_EMISSAO_END"}
],
columns: [
{name: "PED_RECURSO.NOME", alias: "Produto"}, //Campo de agrupamento
{name: "PED_QUANTIDADE", aggregate: "sum", alias: "Qtde"}, //Campo totalizador
{name: "PED_TOTAL", aggregate: "sum", alias: "Vlr"}, //Campo totalizador
{name: "PED_EMISSAO", pivot: true, alias:""} //Campo pivot
]
}
Criando o IDSV:
{
dataSourceQueryKey: 40108558 /* /products/custom/Testes/paulorogerio/datasource/Exemplo 001 - Pivot.idsq */,
type: "simpleLayout", //AQUI é definido o tipo do IDSV
filters: [
{name: "PED_EMISSAO_START", label: "Inicial", group: "Dt. Emissão"},
{name: "PED_EMISSAO_END", column: 1, label: "Final", group: "Dt. Emissão"}
],
columns: [
{name: "PED_RECURSO.NOME"},
//Aqui vemos o uso da propriedade columnGroupType, ela é muito importante em IDSV
//com pivoteamento.
//Os possíveis valores para esta propriedade podem ser:
//"none", "groupByTotalField" ou "groupByPivotValue" (o valor default é "groupByTotalField")
//Mais detalhes: Vide [1]
{name: "PED_EMISSAO", columnGroup: "EMISSÃO DO PEDIDO",
columnGroupType: "groupByPivotValue"},
{name: "PED_QUANTIDADE"},
{name: "PED_TOTAL"}
]
}
[1] propriedade columnGroupType:
Esta propriedade só está disponível em colunas cuja configuração no IDSQ esteja definida como coluna pivot.
Se o seu valor for diferente de "none", o valor da propriedade columnGroup será sobrescrito.
Veja abaixo como fica a apresentação do Simplelayout para cada valor desta propriedade
Com o valor "none"
Com o valor "groupByPivotValue"
Com o valor "groupByTotalField"