Estou tendo problemas com um zoom que se recusa a filtrar valores na versão mobile (apenas na desktop ok), sempre exibindo uma mesma lista inteira de valores retornados de uma base de dados. Vi em alguns casos aqui que devo tratar as constraints dentro do dataset customizado, mas confesso que estou meio perdido quanto a onde devo fazer este tratamento, e como;
criei 2 datasets:
ds_experimental:
function createDataset(fields, constraints, sortFields) {
var newDataset = DatasetBuilder.newDataset();
log.info("QUERY: " + myQuery);
var dataSource = "/jdbc/BD_PROTHEUS12_BMB";
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var created = false;
var myQuery = "SELECT "+
"SB1.B1_XXMODEL, SB1.B1_DESC, SB1.B1_GRUPO, SB1.B1_COD, SX5.X5_CHAVE, SX5.X5_DESCRI "+
"FROM SB1010 AS SB1 INNER JOIN SX5010 AS SX5 "+
"ON SB1.B1_XXMODEL = SX5.X5_CHAVE AND SX5.X5_TABELA = 'Z3' AND SX5.X5_FILIAL = '01' "+
"WHERE SB1.B1_FILIAL = '01' AND SB1.D_E_L_E_T_ <>'*' AND SB1.B1_GRUPO = 'VEIC' AND SB1.B1_LOCPAD IN ('DM', 'SE')";
try {
var conn = ds.getConnection();
var stmt = conn.createStatement();
var rs = stmt.executeQuery(myQuery);
var columnCount = rs.getMetaData().getColumnCount();
while (rs.next()) {
if (!created) {
for (var i = 1; i <= columnCount; i++) {
newDataset.addColumn(rs.getMetaData().getColumnName(i));
}
created = true;
}
var Arr = new Array();
for (var i = 1; i <= columnCount; i++) {
var obj = rs.getObject(rs.getMetaData().getColumnName(i));
if (null != obj) {
Arr[i - 1] = rs.getObject(rs.getMetaData().getColumnName(i)).toString();
} else {
Arr[i - 1] = "null";
}
}
newDataset.addRow(Arr);
}
} catch (e) {
log.error("ERRO==============> " + e.message);
} finally {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
return newDataset;
}
ds_get_experimental:
function defineStructure() {
}
function onSync(lastSyncDate) {
}
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
var dataset = DatasetFactory.getDataset("ds_experimental", null, null, null);
return dataset;
}
function onMobileSync(user) {
}
Este segundo apenas será útil se eu tiver que aplicar ou tratar as tais constraints nele, correto?