Como fazer para ordenar uma consulta no IDSQ/IDSV?
Data de postagem: Jun 18, 2010 5:13:26 PM
A ordenação das colunas pode ser feita tanto do IDSQ quanto no IDSV. Sendo que, em caso de dupla declaração, valerá a declaração do IDSV.
A propriedade responsável pela definição da ordenação é a orderBy. Deve ser passado para esta propriedade uma String com a lista de nome de colunas separados por ;(ponto-e-vírgula), sendo que no caso de ordenação decrescente, deve ser usado o prefixo -(menos) antes no nome do campo. É semelhante ao valor passado para a propriedade indexFieldNames do DataSet.
Segue abaixo um exemplo.
No 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()
}
}
No IDSQ:
{
dataSourceKey: 40108470 /* /products/custom/Testes/paulorogerio/datasource/Exemplo 000.ids */,
filters: [
{name: "PED_EMISSAO_START"},
{name: "PED_EMISSAO_END"}
],
columns: [
{name: "PED_RECURSO.NOME"},
{name: "PED_RECURSO.CODIGO"},
{name: "PED_QUANTIDADE"},
{name: "PED_TOTAL"},
{name: "PED_EMISSAO"}
],
//Este ORDER BY será sobrescrito pelo ORDER BY definido no IDSV, pois o IDSV
//tem maior prioridade
orderBy: "PED_RECURSO.NOME;-PED_RECURSO.CODIGO"
}
No IDSV:
{
dataSourceQueryKey: 41125076 /* /products/custom/.../datasource/Exemplo 002 - Order.idsq */,
type: "simpleLayout",
filters: [
{name: "PED_EMISSAO_START", label: "Inicial", group: "Emissão"},
{name: "PED_EMISSAO_END", column: 1, label: "Final", group: "Emissão"}
],
columns: [
{name: "PED_RECURSO.NOME", label: "Recurso"},
{name: "PED_RECURSO.CODIGO", label: "Código"},
{name: "PED_EMISSAO", label: "Emissão"},
{name: "PED_QUANTIDADE", label: "Qtde"},
{name: "PED_TOTAL", label: "Total"}
],
//Este ORDER BY irá sobrescrever o ORDER BY definido no IDSQ, pois o IDSV
//tem maior prioridade
orderBy: "-PED_RECURSO.CODIGO;PED_RECURSO.NOME"
}