Versão atual:

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.

Versões (2):

Ver a versão formatada

Criar constraints que usa dois dataset customizados

  • criado 28 de Nov de 2018

Comentário

new question