Versão atual:

Constraint está sempre trazendo a primeira linha

Boa tarde, comunidade.

Preciso que de acordo com o usuário que estiver logado preencha um determinado campo. Tenho um dataset customizado com as colunas "NOME" "ID" "LOGIN". O login atual eu comparo com os do dataset e trago em um outro campo o ID do login correspondente, porém, ao implementar percebi que independente do usuário que eu estiver logado ele insere no campo o primeiro ID do dataset.

Meu HTML:

<div class="form-group col-md-2">
                                    <label for="logado" class="info">Usuário</label>
                                    <input id="logado" name="logado" class="form-control" type="text">
                                </div>

                                <div class="form-group col-md-2">
                                    <label for="idUsuarioAdicionado" class="info">Id Usuário Adicionado</label>
                                    <input id="idUsuarioAdicionado" name="idUsuarioAdicionado" class="form-control" type="text">
                                </div>

Meu JS:

//PREENCHER O CAMPO ID USUÁRIO
var id = $("#idUsuarioAdicionado");

var usuario = $("#logado").val();

var c1 = DatasetFactory.createConstraint("LOGIN", usuario, usuario, ConstraintType.MUST);
var constraints = new Array(c1);

var fieldId = new Array("ID");

try {
    var datasetId = DatasetFactory.getDataset("dsUserFluig", fieldId, constraints, null);
    var row = datasetId.values[0];
    $(id).val(row["ID"]);

} catch (erro){
    id.innerHTML = erro;
}

Meu dataset customizado:

function createDataset(fields, constraints, sortFields) {
    var ds = DatasetBuilder.newDataset();

    ds.addColumn("NOME");
    ds.addColumn("ID");
    ds.addColumn("LOGIN")

    var filtroGroup = DatasetFactory.createConstraint("colleagueGroupPK.groupId", "Usuarios", 
            "Usuarios", ConstraintType.MUST);
    //qual coluna iremos buscar, valor que estamos buscando (inicial e final) e o tipo da constraint (must, must not, ...).

    var datasetGroup = DatasetFactory.getDataset("colleagueGroup", null, new Array(filtroGroup), null); //coluna, filtro, e ordenação de registros, dessa forma (null) vai trazer todos os dados.

    for (i = 0; i < datasetGroup.rowsCount ; i++){
        var colaboradorGroup = datasetGroup.getValue(i, "colleagueGroupPK.colleagueId");

        var datasetColaborador = DatasetFactory.getDataset("colleague", null, null, null);

        for (j = 0; j < datasetColaborador.rowsCount; j++){
            var colaboradorCol = datasetColaborador.getValue(j, "colleaguePK.colleagueId");
            var colaboradorNome = datasetColaborador.getValue(j, "colleagueName");
            var colaboradorId = datasetColaborador.getValue(j, "userTenantId");
            if(colaboradorCol == colaboradorGroup){
                ds.addRow(new Array(colaboradorNome, colaboradorId, colaboradorCol));
            }
        }
    }

    return ds;

}

DS VINDO DE BANCO EXTERNO:

function createDataset(fields, constraints, sortFields) {
    var newDataset = DatasetBuilder.newDataset();
    log.info("QUERY: " + myQuery);
    var dataSource = "/jdbc/TesteConexao";
    var ic = new javax.naming.InitialContext();
    var ds = ic.lookup(dataSource);
    var created = false;
    var myQuery = "select * from USUARIO";

    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();
        }
    }

    var colleagueConstraints = new Array();  

    for (i = 0; i < constraints.length ; i++) {
       if (constraints[i].fieldName == 'CodUsuario') {
           colleagueConstraints.push(DatasetFactory.createConstraint("CodUsuario", constraints[i].initialValue, 
                        constraints[i].finalValue, ConstraintType.MUST));
       }
    }

    return newDataset;
}

Alguém já passou por algo parecido e poderia compartilhar a solução?

Atenciosamente, Leonardo Fioretti.

Versões (2):

Ver a versão formatada

Constraint está sempre trazendo a primeira linha

Comentário

new question