Usando filtros com valor nulo no DataSourceQuery

Data de postagem: Jun 25, 2010 9:25:39 PM

É possível fazer consultas com DataSourceQuery cujos filtros selecionem apenas resultados com valores nulos. Para isso, configuramos o operador do filtro com o operador de igualdade e ajustamos o valor do filtro para nulo. Segue abaixo um exemplo.

Dada a seguinte definição do DataSource:

{ 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 após 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(); } }

Na definição do DataSourceQuery, usamos o operador nulo da seguinte forma:

{ /* /products/custom/Testes/paulorogerio/datasource/Exemplo 000.ids */ dataSourceKey: 40108470, filters: [ {name: "PED_EMISSAO_START"}, {name: "PED_EMISSAO_END"}, {name: "PED_UNITARIO", operator: "=", value: null} ], columns: [ {name: "PED_RECURSO.NOME"} ], orderby: "PED_RECURSO.NOME" }