Bom dia pessoal, sou iniciante no Fluig e gostaria de ajuda. Eu tenho um Dataset avançado que é alimentado pelo nosso banco de dados externo. No meu caso estou levando alguns dados da tabela SX5 do banco do Protheus, porem eu precisava filtrar deste dataset algumas informações.
Segue meu código do dataset:
function createDataset(fields, constraints, sortFields) {
//cria data sete com select na tabela CCHA010 do Protheus
var newDataset = DatasetBuilder.newDataset();
var dataSource = "/jdbc/MP1222";
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var created = false;
var myQuery = "SELECT X5_TABELA, X5_CHAVE, X5_DESCRI FROM SX5010 X5 WHERE X5_TABELA IN ('02','SG') AND X5.D_E_L_E_T_ = '' ";
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 (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
return newDataset;
}
Meu data sete funciona bem, porem eu precisava adicionar constantes nele e não estou conseguindo. Nesse caso eu preciso pegar este dataset e criar outro com as constraintes filtrando o campo X5_Tabela, X5_TABELA = SG e o outro igual a 02. Porem quando crio estes datassets a constrainte não e aplicada.
Código do dataset com constrainte:
function createDataset(fields, constraints, sortFields) {
var X5_TABELA = DatasetFactory.createConstraint(“X5_TABELA”, “SG”, “SG”, ConstraintType.MUST);
var dataset = DatasetFactory.getDataset(“DS-SX5”, null, new Array(X5_TABELA), null);
return dataset;
}
Esse dataset com a constraint retorna todos os dados do dataset primário.
Alguém poderia me explicar onde eu estou errando e como eu aplicaria esses filtros da melhor forma?