Hola Jhon,
los eventos en el cuadro, normalmente se colocan como parte de los datos o en su propia botonera en cada fila. Esto es, tenes un evento por fila o por fila y columna.
Segun veo de la imagen, lo que necesitas son eventos a nivel de columna que valgan para todas las filas, es justamente lo contrapuesto.
Calculo que se puede llegar a realizar… pero hay que modificar extensivamente la salida_html del cuadro y con “modificar” me refiero a que hay que redefinir el comportamiento de la mayoria de los metodos y generar ciertos “atajos”. A priori se me ocurren:
Metodo que dibuja las cabeceras (que ahora va a tener que sacar eventos de fila)
Metodo que dibuja la fila del cuadro (para que no saque dichos eventos)
Metodo que dibuja la botonera del cuadro (para que no saque dichos eventos tampoco)
De acuerdo a como estan configurados los eventos, vas a tener que solicitarlos a diversos metodos. De hecho, te diria que abras la clase y mires todo lo que usa el metodo “html_cuadro”… ya que vas a tener que modificar gran parte de ellos.
Luego de la modificacion visual, tambien vas a tener que modificar el comportamiento del lanzado de eventos, ya que de otra manera… te lanzara un evento por fila. Quizas esta parte la podes adaptar desde el CI, que es quien en definitiva va a estar procesando esos eventos, sino tendrias que subclasear tambien toba_ei_cuadro.
Es un trabajo arduo, hay que cambiar la mayoria de las cosas pero el resultado final puede ser justo lo que estas buscando.
La verdad quedo más perdido que bisco en un guadual,
y que tal si en cada columna se muestra una imágen como link asociado a un evento, y se ocultan los eventos, para recuperar la columna respectiva y recuperar los datos.
Podrias hacer algo asi, de hecho si vale para todas las filas no tendrias tanto inconveniente. En ese caso deberias registrar el envio del evento manualmente, de otra manera Toba lo va a ignorar en el proximo pedido de pagina.
Cómo puedo refresacar un cuadro, para que me tome la actualización de la bd proveninete de un Popup ?
El caso del horario que te comentaba en la gráfica, cuando el link de la columna me lleva al popup y actualizó los datos del horario, pero cuando salgo de popup, requiero que se me recargue el cuadro, si que el usuario tenga que volver a dar el evetno filtrar, que es el que lleva a la gráfica del cuadro.
creo que la unica opcion que tienes es invocar una callback desde la ventana popup al momento de cerrarla. De esa forma puedes disparar un evento en la ventana principal y asi recargar el cuadro.
Richard, una ayudita
Puedo disparar un evento de un CI-1, desde otro CI-2 que contiene otro evento de formulario que se llena con los datos, para poder recargar el cuadro por medio del filtro ?
Algo así como evt__filtro__filtrar($datos)
En la gráfica adjunta, se nota el proceso, el cuadro responde al filtro, en el cuadro se selecciona un evento para abrir el un formulario de otro CI, donde se capturan los datos que se deben dibujar en el cuadro.
Pero NO hemos podido con refrescar el cuadro sin necesidad de dar nuevamente filtrar.
corregime si me equivoco… pero como lo veo, no es solamente un CI lo que se abre en la nueva pantalla, sino una operacion distinta.
Una opcion que se me ocurre es que al intentar cerrar esa ventana, se dispare un ajax (en la ventana padre) donde obtengas los nuevos datos y los reemplaces a mano en la fila del cuadro en cuestion. En tu caso pareciera reducirse a cambiar unos iconos.
De otra forma, lo mas logico es que la pagina que contiene el cuadro se recargue como si hubieran presionado el boton de filtrado, eso lo puedes hacer via JS con la misma llamada que realiza el boton en el evento onclick.
Es decir, desde la ventana hija lanzas la llamada a un metodo en la ventana padre y dentro de ese metodo disparas el evento.
Efectivamente es como dices y la tienes claro que es cambiar el ícono del cuadro y por código hago el resto.
Como puedes ver en el arbol de la gráfica adjunta son dos CI Separados, con sus propias operaciones; el segundo hace las veces de ABM para los datos y los mismos quedan en la base de datos, por lo tanto al recargar el cuadro el mismo se actualiza.
Los otros parráfos, lo tienes claro, pero lamentablemente NO he trabajado dichos conceptos más allá de los ejemplos que me brinda Toba.
Te agradecería orientarme como se hace cada uno de los últimos tres párrafos, y en especial como disparo el evento filtrar desde el otro CI.
El identificador del objeto CI en cuestion, lo puedes obtener haciendo una llamada a este metodo. Ese seria el identificador que debes usar antes del dep(‘filtro’).
Supongo que esta funcion la dispara el boton ‘Regresar’… ese boton pertenece a un evento Toba o es un boton simple?.. al presionarlo intenta ir al servidor o se queda en la pagina sin hacer nada?
Una última cosa, como hago para que la ventana hija, NO se abrá varias veces en el navegador (limitar que solamente se encuentre abierta una sola), esto debido a que si el usuario NO cierra la ventana hija, y vuelve a la ventana padre y selecciona nuevamente la opción, se abre otra ventana y así N ventanas.