Criar constraints que usa dois dataset customizados

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.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags fluig-store fluig datasets ou faça a sua própria pergunta.