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"

}