Hola! tengo un ef_combo_editable en un formulario ML, único dato, que se carga a través de una relación.
Funciona correctamente la recuperación de los datos ya ingresados, y funciona sin problemas también la modificación en que nada se toca, y solo se muestra (es decir, recupero y acepto, y funciona).
Ahora bien, si agrego un dato, al aplicar los cambios la primer fila aparece con tilde de ‘M’ odificacion, y con valores nulos, por lo que me tira un error ya que el campo debe contener datos.
Adjunto una foto del formulario como está, y sus propiedades.
El código en el CI es:
//-----------------------------------------------------------------------------------
//---- asignacion funciones de docentes ---------------------------------------------
//-----------------------------------------------------------------------------------
function conf__formulario_ml_fd(upso_actos_adm_ei_formulario_ml $form)
{
$cant_datos = $this->dep('rel_ordenanzas_fd')->tabla('ordenanzas')->get_cantidad_filas();
if ($cant_datos > 0) {
$datos = $this->dep('rel_ordenanzas_fd')->tabla('ordenanzas_fd')->get_filas();
$form->set_datos($datos);
}
}
function evt__formulario_ml_fd__modificacion($datos)
{
$this->dep('rel_ordenanzas_fd')->tabla('ordenanzas_fd')->procesar_filas($datos);
}
y en el datos_tabla que carga el combo_editable:
function get_docente($id=null)
{
if (! isset($id)) {
return array();
}
$id = quote($id);
$sql = "SELECT id, apellido||', '||nombre AS docente
FROM docentes.docentes
WHERE vigente IS true AND id = $id
ORDER BY apellido, nombre
;";
$result = toba::db()->consultar($sql);
if (! empty($result)) {
return $result[0]['docente'];
}
}
function get_descripciones_editables($filtro=null)
{
$where = '';
if (isset($filtro)) {
$filtro = quote("%{$filtro}%");
$where = "AND (nombre ILIKE $filtro OR apellido ILIKE $filtro)";
}
$sql = "SELECT id, apellido||', '||nombre AS docente
FROM docentes.docentes
WHERE vigente IS true
$where
ORDER BY apellido, nombre
;";
return toba::db()->consultar($sql);
}
Cabe aclarar que el error no acontece si modifico esa fila en particular. Pero si lo hace al agregar alguna fila.
De hecho, lo hace si el formulario ML inicia sin datos, y luego se carga más de una fila!
Desconozco donde puede estar el error ya que los datos se recuperan sin problemas.
Gracias!