Criei uma Widget para consultar Orçamentos para Aprovação. Consigo consultar a listagem de orçamentos, porém, quando se clica no botão de Detalhar, está dando erro no Console de Uncaught TypeError: Cannot read property 'getRow' of undefined.
Consigo trazer a linha, mas ele não consegue reconhecer o getRow para eu pegar os dados da linha.
Eu consegui fazer isso em Formulário, aliás esse mesmo código funciona nos Formulários, mas está dando erro no Widget.
listarorcamentos: function(htmlElement, event) {
var constraints = new Array();
// Verifica os campos preenchidos no Formulario para montar as Constraints do Dataset
// Aprovadores, campo obrigatório, busca o Nome do campo e envia para a Consulta SQL
if($("#listaAprovadores_" + this.instanceId).val() == "nome") {
alert("É obrigatório selecionar um Aprovador");
}
else {
constraints.push(DatasetFactory.createConstraint("listaAprovadores", $("#listaAprovadores_" + this.instanceId).val(), $("#listaAprovadores_" + this.instanceId).val(), ConstraintType.MUST));
}
// Hierarquia, se for selecionado Todos, não cria Constraint, senão, pega o código da Hierarquia selecionada.
if($("#listaHierarquia_" + this.instanceId).val() != "0") {
constraints.push(DatasetFactory.createConstraint("listaHierarquia", $("#listaHierarquia_" + this.instanceId).val(), $("#listaHierarquia_" + this.instanceId).val(), ConstraintType.MUST));
}
// Data Inicial e Data Final, se preenchidos criam Constraint.
if($("#dataInicial_" + this.instanceId).val() != "") {
var temp_ini = $("#dataInicial_" + this.instanceId).val();
var data_ini = "1" + temp_ini.substring(8,10) + temp_ini.substring(3,5) + temp_ini.substring(0,2);
constraints.push(DatasetFactory.createConstraint("dataInicial", data_ini, data_ini, ConstraintType.MUST));
}
if($("#dataFinal_" + this.instanceId).val() != "") {
var temp_fim = $("#dataFinal_" + this.instanceId).val();
var data_fim = "1" + temp_fim.substring(8,10) + temp_fim.substring(3,5) + temp_fim.substring(0,2);
constraints.push(DatasetFactory.createConstraint("dataFinal", data_fim, data_fim, ConstraintType.MUST));
}
// Solicitante, se preenchido criar Constraint
if($("#solicitante_" + this.instanceId).val() != "") {
constraints.push(DatasetFactory.createConstraint("solicitante", $("#solicitante_" + this.instanceId).val(), $("#solicitante_" + this.instanceId).val(), ConstraintType.MUST));
}
// Fornecedor, se preenchido criar Constraint
if($("#fornecedor_" + this.instanceId).val() != "") {
constraints.push(DatasetFactory.createConstraint("fornecedor", $("#fornecedor_" + this.instanceId).val(), $("#fornecedor_" + this.instanceId).val(), ConstraintType.MUST));
}
var ds_lista = DatasetFactory.getDataset("ds_lista_orcamento", null, constraints, null);
alert("Total Tables: " + ds_lista.values.length);
this.mydata = [];
if (ds_lista != null && ds_lista.values != null && ds_lista.values.length > 0) {
var records = ds_lista.values;
for ( var index in records ) {
var record = records[index];
this.mydata.push({
PEDIDO: record.PEDIDO,
HIERARQUIA: record.DESCHIER,
SOLICITANTE: record.SOLICITANTE,
DATA: record.FMSG_DATA,
COD_FORN: record.FORNEC,
RAZAO: record.RAZFOR,
VALOR: record.VALOR,
ORIGEM: record.ORIGEM,
OBSERVACAO: record.FQUE_MENSAGEM
});
}
}
else {
FLUIGC.toast({
title: 'Atençao: ',
message: 'Não há orçamentos para serem analisados.',
type: 'warning'
});
}
this.myTable = FLUIGC.datatable('#table1', {
dataRequest: this.mydata,
//renderContent: ['FMSG_CODIGO', 'FMSG_DATA', 'FMSG_LIDA', 'SOLICITANTE', 'FMSG_TRANSACAO', 'FQUE_MENSAGEM', 'FQUE_WORKITEM', 'FMSG_DESTINO', 'PEDIDO', 'FORNEC', 'RAZFOR', 'VALOR', 'ORIGEM', 'DESCHIER'],
renderContent: '.template-datatable',
header: [
{'title': 'Mover', 'size': 'col-md-1'},
{'title': 'Detalhar', 'size': 'col-md-1'},
{'title': 'Pedido', 'size': 'col-md-1'},
{'title': 'Hierarquia', 'size': 'col-md-2'},
{'title': 'Solicitante', 'size': 'col-md-2'},
{'title': 'Data', 'size': 'col-md-2'},
{'title': 'Fornecedor', 'size': 'col-md-1'},
{'title': 'Razao Social', 'size': 'col-md-3'},
{'title': 'Valor', 'size': 'col-md-1'},
{'title': 'Tipo', 'size': 'col-md-1'},
{'title': 'Observaçao', 'size': 'col-md-3'}
],
scroll: {
target: ".target",
enabled: true
},
}, function(err, data) {
if (err) {
FLUIGC.toast({
message: err,
type: 'danger'
});
}
});
$('#table1').on('click', 'button', function(ev) {
alert("Chegou na Funcao - click button");
var linhaSelecionada = $(this).closest('tr').index();
console.log(linhaSelecionada);
var linha = $(this).myTable.getRow(linhaSelecionada);
console.log(linha);
alert("Pedido 01: " + linha.PEDIDO);
detalharPedido(linha);
});
$('#table1').on('click', 'input', function() {
alert("Evento Change - Checkbox clicado");
console.log($(this).closest('tr').index());
console.log(myTable.getRow($(this).closest('tr').index()));
var linhaSelecionada = $(this).closest('tr').index();
var linha = myTable.getRow(linhaSelecionada);
if(document.getElementById("status_todos").checked) {
alert("Checkbox Habilitado! - ");
alert("Linha: " + linha.PEDIDO);
}
});
}
Meus dois problemas atuais estão nesse trecho do código:
$('#table1').on('click', 'button', function(ev) {
alert("Chegou na Funcao - click button");
var linhaSelecionada = $(this).closest('tr').index();
console.log(linhaSelecionada);
var linha = $(this).myTable.getRow(linhaSelecionada);
console.log(linha);
alert("Pedido 01: " + linha.PEDIDO);
detalharPedido(linha);
});
Onde está dando erro no getRow, existe outra função para os widget além do getRow ?
E depois disso como faço no Widget para ele chamar o DetalharPedido? Preciso configurar como se fosse um binding local?