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.
Leonardo, acredito que falta você tratar dentro do seu dataset a constraint LOGIN utilizada na chamada pelo JS. Talvez por ter o mesmo nome de campo LOGIN, você possa passar a constraint diretamente para o dataset colleague :
— Diogo Boegershausen 19 de Sep de 2018var datasetColaborador = DatasetFactory.getDataset("colleague", null, constraints, null);
@Diogo, infelizmente sua solução não funcionou. Sabe alguma outra coisa que pode ajudar?
— Leonardo Fioretti 19 de Sep de 2018