Boa tarde. Estou com dificuldade na seguinte questão.? Tenho um Zoom no qual pego o "tipo" e outro que pego a "conta contabil". Tabela Conta_Contabil existe o campo "Tipo" porem nem todos estão informados.
Meu dataset do segundo zoom que recebe como constraints o "tipo" deve seguir a seguinte regra.
Recebe constraints e retorna dataset Caso o retorno seja nulo | branco "não venha informação nenhuma. Refazer a consulta sem a constraints ai trara todas as informações.
Será que isso é possivel.
Dataset
function createDataset(fields, constraints, sortFields) {
var fonteDados = retornarEmpresaTabela();
var sqlStr = "SELECT TOP 50 RTRIM(LTRIM(CT1_CONTA)) AS CT1_CONTA," +
" RTRIM(LTRIM(CT1_CONTA)) + ' - ' + RTRIM(LTRIM(CT1_DESC01)) AS CT1_DESC01, CT1_CLASSE, CT1_TPPROD" +
" FROM " + fonteDados.banco + "CT10" + fonteDados.tabela + "0" +
" WHERE CT1_CLASSE = '2' AND D_E_L_E_T_ <> '*' "
if (constraints != null) {
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == "CT1_TPPROD") {
sqlStr = sqlStr + " AND (CT1_TPPROD LIKE '%" + constraints[i].initialValue + "%')"
}else if (constraints[i].fieldName == "CT1_DESC01") {
sqlStr = sqlStr + " AND (RTRIM(LTRIM(CT1_TPPROD)) + ' - ' + RTRIM(LTRIM(CT1_DESC01)) LIKE '%" + constraints[i].initialValue + "%')"
}
}
}
var cst1 = DatasetFactory.createConstraint("SQL", sqlStr, sqlStr, ConstraintType.MUST);
var filtro = new Array(cst1);
var dataset = DatasetFactory.getDataset("dsSQL", null, filtro, null);
log.info("###### DATASET: " + dataset);
return dataset;
}
function createDataset(fields, constraints, sortFields) {
var minhaQuery = "SELECT * FROM PREFER_PASTA ";
if (constraints != null) {
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == "SQL") {
minhaQuery = constraints[i].initialValue;
}
}
}
if(fields != null){
minhaQuery = fields[0];
}
var dataSource = "jdbc/FluigDS";
log.info("###### SQL: " + minhaQuery);
var newDataset = DatasetBuilder.newDataset();
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var created = false;
try {
var conn = ds.getConnection();
var stmt = conn.createStatement();
var rs = stmt.executeQuery(minhaQuery);
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.info(" ####### ERRO==============> " + e.message);
} finally {
if(stmt != null) stmt.close();
if(conn != null) conn.close();
}
return newDataset;
}