att
This commit is contained in:
@@ -11,6 +11,9 @@ function createDataset(fields, constraints, sortFields) {
|
||||
var pagesize = 100;
|
||||
var page = 1;
|
||||
var total = null;
|
||||
var termoBusca = getSearchTerm(constraints);
|
||||
var limiteLinhas = getLimit(constraints, 200);
|
||||
var linhasAdicionadas = 0;
|
||||
|
||||
try {
|
||||
var clientService = fluigAPI.getAuthorizeClientService();
|
||||
@@ -59,12 +62,18 @@ function createDataset(fields, constraints, sortFields) {
|
||||
if (total === null && obj.total != null) total = Number(obj.total);
|
||||
|
||||
for (var i = 0; i < funcoes.length; i++) {
|
||||
dataset.addRow([
|
||||
funcoes[i].RJ_DESC || "",
|
||||
funcoes[i].RJ_CODCBO || "" // ou RJ_CBO se for o campo desejado
|
||||
]);
|
||||
var descricao = String(funcoes[i].RJ_DESC || "");
|
||||
var cbo = String(funcoes[i].RJ_CODCBO || "");
|
||||
|
||||
if (matchSearch(termoBusca, descricao, cbo)) {
|
||||
dataset.addRow([descricao, cbo]);
|
||||
linhasAdicionadas++;
|
||||
if (linhasAdicionadas >= limiteLinhas) break;
|
||||
}
|
||||
}
|
||||
|
||||
if (linhasAdicionadas >= limiteLinhas) break;
|
||||
|
||||
// condição de parada segura
|
||||
if (funcoes.length < pagesize) break;
|
||||
|
||||
@@ -76,9 +85,62 @@ function createDataset(fields, constraints, sortFields) {
|
||||
|
||||
} catch (e) {
|
||||
dataset = DatasetBuilder.newDataset();
|
||||
dataset.addColumn("ERRO");
|
||||
dataset.addRow([String(e)]);
|
||||
dataset.addColumn("DESCRICAO");
|
||||
dataset.addColumn("CBO");
|
||||
dataset.addRow(["ERRO AO CARREGAR FUNCOES: " + String(e), ""]);
|
||||
}
|
||||
|
||||
return dataset;
|
||||
}
|
||||
}
|
||||
|
||||
function getSearchTerm(constraints) {
|
||||
if (!constraints || constraints.length === 0) return "";
|
||||
|
||||
var searchField = "";
|
||||
var searchValue = "";
|
||||
var term = "";
|
||||
|
||||
for (var i = 0; i < constraints.length; i++) {
|
||||
var c = constraints[i];
|
||||
var field = String(c.getFieldName ? c.getFieldName() : c.fieldName || "").toLowerCase();
|
||||
var value = String(c.getInitialValue ? c.getInitialValue() : c.initialValue || "");
|
||||
|
||||
if (field === "searchfield") {
|
||||
searchField = String(value).toLowerCase();
|
||||
} else if (field === "searchvalue") {
|
||||
searchValue = value;
|
||||
} else if (field === "descricao" || field === "rj_desc" || field === "cbo" || field === "rj_codcbo") {
|
||||
term = value;
|
||||
}
|
||||
}
|
||||
|
||||
if (searchValue !== "") return searchValue;
|
||||
if (searchField !== "" && term !== "") return term;
|
||||
return term;
|
||||
}
|
||||
|
||||
function getLimit(constraints, defaultValue) {
|
||||
if (!constraints || constraints.length === 0) return defaultValue;
|
||||
|
||||
for (var i = 0; i < constraints.length; i++) {
|
||||
var c = constraints[i];
|
||||
var field = String(c.getFieldName ? c.getFieldName() : c.fieldName || "").toLowerCase();
|
||||
var value = String(c.getInitialValue ? c.getInitialValue() : c.initialValue || "");
|
||||
|
||||
if (field === "sqllimit" || field === "limit") {
|
||||
var n = parseInt(value, 10);
|
||||
if (!isNaN(n) && n > 0) return n;
|
||||
}
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
function matchSearch(term, descricao, cbo) {
|
||||
var t = String(term || "").toLowerCase().trim();
|
||||
if (t === "") return true;
|
||||
|
||||
var desc = String(descricao || "").toLowerCase();
|
||||
var cod = String(cbo || "").toLowerCase();
|
||||
return desc.indexOf(t) >= 0 || cod.indexOf(t) >= 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user