Boa tarde!
Estou com dificuldades de criar as constraints no dataset DS_ListaGinastica. Ele busca de dois dataset customizado, para que possa ser comparado e criado com a presença ou falta do funcionário.
DATASET CUSTOMIZADO - LISTA COM TODOS OS FUNCIONÁRIOS (DS_listaFunSen)
function createDataset(fields, constraints, sortFields) {
var newDataset = DatasetBuilder.newDataset();
log.info("QUERY: " + myQuery);
var dataSource = "java:/jdbc/Senior";
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var created = false;
var myQuery = "SELECT F.NUMEMP, F.TIPCOL, F.NUMCAD, F.NOMFUN, F.NUMPIS, F.EMICAR, F.CONRHO, P.USU_NUMLID, " +
"(SELECT F1.NOMFUN FROM R034FUN F1 WHERE F1.NUMCAD = P.USU_NUMLID) NOME_LIDER, " +
"H.USU_NUMFIS, U.CODCCU, U.NOMCCU, C.CODCAR, C.TITRED, C.SISCAR, R.NUMLOC, R.NOMLOC " +
"FROM R034FUN F " +
"INNER JOIN R034CPL P ON P.NUMEMP = F.NUMEMP AND P.TIPCOL = F.TIPCOL AND P.NUMCAD = F.NUMCAD " + //Complemento funcionario
"INNER JOIN R038HCH H ON H.NUMEMP = F.NUMEMP AND H.TIPCOL = F.TIPCOL AND H.NUMCAD = F.NUMCAD " + //Historico cracha
"INNER JOIN R018CCU U ON U.NUMEMP = F.NUMEMP AND U.CODCCU = F.CODCCU " + //Centro de Custo
"INNER JOIN R024CAR C ON C.ESTCAR = F.ESTCAR AND C.CODCAR = F.CODCAR " + //Cargo
"INNER JOIN R016ORN R ON R.TABORG = F.TABORG AND R.NUMLOC = F.NUMLOC " + //Setor
"INNER JOIN R010SIT S ON S.CODSIT = F.SITAFA " + //Descricao das situacoes (SITAFA)
"WHERE F.NUMEMP = '1' " + //empresa
"AND F.CODFIL = '1' " + //filial
"AND F.TIPCOL = '1' " + //funcionario
"AND F.SITAFA = '1' " + //trabalhando
"AND H.TIPCRA = '1' " + //tipo cracha
"AND H.STAATU = '1' " + //situacao cracha ativo
"AND C.CODCAR <> '768' " + //não considerar jovem aprendiz
"ORDER BY U.CODCCU, C.SISCAR, F.NOMFUN, P.USU_NUMLID ";
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;
}
DATASET CUSTOMIZADO - LISTA DE FUNCIONÁRIOS PRESENTES (DS_ControleGinastica)
function createDataset(fields, constraints, sortFields) {
var newDataset = DatasetBuilder.newDataset();
var dataSource = "java:/jdbc/FluigDS";
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var created = false;
var myQuery = "SELECT * FROM urb_controle_ginastica";
log.info("QUERY: " + myQuery);
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;
}
DATASET CUSTOMIZADO - LISTA FINAL COM PRESENÇA E FALTA (DS_ListaGinastica)
function createDataset(fields, constraints, sortFields) {
var codLider;
var nomeLider;
var aListaPresenca = [];
var dsListaSen = DatasetFactory.getDataset("DS_listaFunSen", null, null, null);
var dscontroGi = DatasetFactory.getDataset("DS_ControleGinastica", null, null, null);
var dataset = DatasetBuilder.newDataset();
var data = new Date(),
dia = data.getDate().toString(),
diaF = (dia.length == 1) ? '0'+dia : dia,
mes = (data.getMonth()+1).toString(), //+1 pois no getMonth Janeiro começa com zero.
mesF = (mes.length == 1) ? '0'+mes : mes,
anoF = data.getFullYear(),
hora = data.getHours(), // 0-23
horaF = (hora > 9 ? '' : '0') + hora;
min = data.getMinutes(), // 0-59
minF = (min > 9 ? '' : '0') + min;
dataAtual = anoF + "-" + mesF + "-" +diaF;
//Criar constraints
if(constraints != null){
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == "codLider") {
codLider = constraints[i].initialValue;
}else if (constraints[i].fieldName == "nomeLider") {
nomeLider = constraints[i].initialValue;
}
}
}
//Cria as colunas
dataset.addColumn("NUMCAD");
dataset.addColumn("RFID");
dataset.addColumn("NOME");
dataset.addColumn("CODLIDER");
dataset.addColumn("LIDER");
dataset.addColumn("CCUSTO");
dataset.addColumn("NOMCCU");
dataset.addColumn("EMICAR");
dataset.addColumn("TPCARGO");
dataset.addColumn("DATA");
dataset.addColumn("PRESENCA");
//Coloca F para todos os funcionários
for (var i = 0; i < dsListaSen.rowsCount; i++){
aListaPresenca.push(
[dsListaSen.getValue(i, "NUMCAD"),
dsListaSen.getValue(i, "USU_NUMFIS"),
dsListaSen.getValue(i, "NOMFUN"),
dsListaSen.getValue(i, "USU_NUMLID"),
dsListaSen.getValue(i, "NOME_LIDER"),
dsListaSen.getValue(i, "CODCCU"),
dsListaSen.getValue(i, "NOMCCU"),
dsListaSen.getValue(i, "EMICAR"),
dsListaSen.getValue(i, "SISCAR"),
dataAtual,
"F"]);
}
//Os usuários do Controle Ginástica recebem P
for (var k = 0; k < aListaPresenca.length; k++){
var matricula = aListaPresenca[k][1];
for (var j = 0; j < dscontroGi.rowsCount; j++){
if( (dscontroGi.getValue(j, "matricula")) == matricula ){
aListaPresenca[k][9] = dscontroGi.getValue(j, "data");
aListaPresenca[k][10] = "P";
}
}
}
//Adiciona nas linhas
for (var k = 0; k < aListaPresenca.length; k++){
dataset.addRow(new Array(
aListaPresenca[k][0],
aListaPresenca[k][1],
aListaPresenca[k][2],
aListaPresenca[k][3],
aListaPresenca[k][4],
aListaPresenca[k][5],
aListaPresenca[k][6],
aListaPresenca[k][7],
aListaPresenca[k][8],
aListaPresenca[k][9],
aListaPresenca[k][10]));
}
return dataset;
}
Alguém poderia me ajudar? Obrigada.