[SOLUCIONADO]Primera vez que entro al foro

Hola gente… Soy Alejandro Morón de la UNLPam. Recien estoy dando los primeros pasos por TOBA (1.5.2 en particular).

Va mi duda:

Tengo un cuadro con los eventos “Seleccion” y “Eliminar”, ambos declarados a nivel fila (sin multiples registro).
Todo funciona bien con el código de los eventos:

function evt__cdro_Personas__Seleccion($datos)
{
$this->informar_msg("Evento Seleccion:  ".$datos['dni'], "info");
}


function evt__cdro_Personas__Eliminar($seleccion)
{
$this->informar_msg("Evento Eliminar:  ".$seleccion['dni'], 'info');
         }

Pero cuando declaro el evento “Selección” tildando “Múltiples Registros”, deja de funcionar según lo que yo esperaba.
Por ejemplo: Al pulsar el icono de eliminar en un registro del cuadro, se ejecuta primero el evento Seleccion y luego el evento Eliminar; Además no se visualiza $datos[‘dni’] y $seleccion[‘dni’] (como puse en el código), me aparece vacio en ese contexto. Lo único que me aparece al pulsar el icono de Eliminar el registro, es un cuadro de diálogo con título Información: y abajo aparece Evento Seleccion: (nada al lado) y abajo aparece Evento Eliminar: (nada al lado). Debido a este cuadro de diálogo es lo que interpreto que ejecuta primero el evento Eliminar (no se si me equivoco). Además no muestra los dni, cosa que si vuelvo a destildar en el evento Seleccion, “Múltiples Registro”, anda todo bien.

Gracias ! Y tengan paciencia si mi pregunta es muy básica.

Bienvenido al foro Alejandro, disculpa la demora en contestar.

Tengo un cuadro con los eventos "Seleccion" y "Eliminar", ambos declarados a nivel fila (sin multiples registro). Pero cuando declaro el evento "Selección" tildando "Múltiples Registros", deja de funcionar según lo que yo esperaba. Por ejemplo: Al pulsar el icono de eliminar en un registro del cuadro, se ejecuta primero el evento Seleccion y luego el evento Eliminar; Además no se visualiza $datos['dni'] y $seleccion['dni'] (como puse en el código), me aparece vacio en ese contexto. Lo único que me aparece al pulsar el icono de Eliminar el registro, es un cuadro de diálogo con título Información: y abajo aparece Evento Seleccion: (nada al lado) y abajo aparece Evento Eliminar: (nada al lado). Debido a este cuadro de diálogo es lo que interpreto que ejecuta primero el evento Eliminar (no se si me equivoco). Además no muestra los dni, cosa que si vuelvo a destildar en el evento Seleccion, "Múltiples Registro", anda todo bien.

Te hago una consulta, tenes algun codigo JS en la operacion?.
Por otro lado, los eventos de multiples registros se van a disparar en todos los pedidos de pagina, ya que de alguna manera la idea es transmitir el ‘estado’ del cuadro para dichos eventos.
Sin embargo eso no debe ser impedimento para que los eventos comunes funcionen correctamente.
Podrias modificar el codigo de la siguiente forma para visualizar bien que te esta enviando y adjuntarme una captura con el resultado?.


function evt__cdro_Personas__Seleccion($datos)
   {
          ei_arbol($datos, "Evento Seleccion:  ");
   }


   function evt__cdro_Personas__Eliminar($seleccion)
   {
          ei_arbol($seleccion, "Evento Eliminar:  ");
   }

Saludos

Gracias Richard.

Ok, el evento de multiples registros se ejecuta siempre que llamo la página. Pero por qué me deja de andar el código normalmente. Básicamente, el parametro de los eventos Seleccion y Elimnar, no contiene nada. Sin multiples registro el mismo código anda bien, y los parámetros tienen los valores que espero.

En cuanto a código js, no tengo nada, salvo el generado.
En cuanto a los ei_arbol que me indicaste, muestra solo el título, pero no el contenido de la variable.

En realidad la aplicación de ejemplo que hice, no tiene mayor complejidad que un cuadro con los dos eventos Selección y Eliminar, pero los parámetros son nulos cuando cambio el evt Selección a multiple registro. Cosa Golda ! Será un bugs de la ver 1.5.2 ?

Richard…

Haciendo pruebas, vi que cuando se ejecuta el evento selección (con multiples registro), por ejemplo al pulsar el icono de eliminar de un registro en particular, muestra bien el contenido del parámetro “datos”, con el código que me pasaste:
function evt__cdro_Personas__seleccion($datos)
{
ei_arbol($datos, "Evento Seleccion: ");

}

Pero lo que me parece raro, es que aparece vacio el párametro “$seleccion” en el evento eliminar de cada registro (ese no es multiple registro)

function evt__cdro_Personas__Eliminar($seleccion)
{

ei_arbol($seleccion, "Evento Eliminar:  ");

         }

Me muestra solo el título del Arbol: "Evento Eliminar: ". Probé en ver “seleccion” con informar_msg pero igual y de otras maneras, pero en todas no contiene nada. Y nunca muestra nada, ya sea que seleccione 0, 1 o más registros conjuntamente. Pero si especifico el evento “seleccion” no como multiple registro, el evento eliminar muestra bien el contenido del parámetro (el registro a eliminar).

Te adjunto la pantalla que muestra el resultado de pulsar un icono eliminar de cualquier registro, luego de seleccionar todos los mismos.

Un abrazo ! y gracias por tu tiempo !


Hola Alejandro,

es un bugture, osea… es consecuencia de como fueron injertados los eventos multiples en el cuadro, el mayor inconveniente para su solucion es que se rompe la compatibilidad hacia atras y habria que rehacer todos los sistemas nuevamente, asi que antes de que el resto de los lectores saquen aguja y muñequito vudú les digo que existe otra forma de solucionarlo.

La forma sencilla de solucionarlo es NO llamando ‘seleccion’ el evento multiple, la realidad es que deberia existir alguna forma de restriccion en el editor para que no se pueda dar esa conjuncion nombre-checkbox, debido a que el manejo para el evento ‘seleccion’ siempre fue considerado un caso particular pero como no nos topamos con este caso la misma no existe (aun).

En un intento por darle un comportamiento extendido terminamos introduciendo este bug, es poco probable que rompamos la compatibilidad hacia atras por esto, por ahi un dia me levanto iluminado y con la solucion a ambos casos… mejor cambiale el nombre va a tardar menos que yo en iluminarme :P.

Saludos y gracias por reportar el problema :slight_smile:

Sos un groso Richard !!!

Anda de 10. Gracias.

En un comienzo se me habia cruzado la idea que podia ser el nombre. Pero me rei y continué buscando la solución por otra parte.
Debo hacer más caso a mis intuiciones… jaja

Un abrazo changuito !