El mismo filtro funciona para los dos cuadros (de ahi la idea de hacerlos en tabs), mi duda es como hacer para pasarle el sql_where del filtro a los cuadros? se me ocurrio hacerle una funcion al CI-2 “set_filtro” y pasarle el filtro desde el evento filtrar, pero cuando cambio de tab pierdo el filtro en el CI-2. Tengo que usar un controlador de negocios?
Bueno espero haber exlicado bien… Gracias de ante mano!
Hace un par de semanas me topé con el mismo problema que vos, te comentó como lo resolví (no sé si es la forma mas conveniente, a lo sumo Richard nos dará algún tip si existe una alternativa mejor)
La lógica la puse toda en el CI-1
En el evento filtrar del filtro
function evt__filtro__filtrar($datos)
{
if (isset($datos)) {
$this->s__datos = $datos;
$this->s__filtro = $this->dep('filtro')->get_sql_clausulas();
} else {
$this->evt__filtro__cancelar();
}
}
En el evento conf
function conf() {
if (isset($this->s__datos)) {
$this->cargar_cuadros();
$this->set_titulos_tab();
}
}
En cargar_cuadros() se llenan los cuadros, entre otras cosas, y eso lo lleno con:
$this->dep('CI-2')->dep('cuadro-1')->set_datos(la consulta que llene este cuadro, en $this->s__filtro tenés las condiciones del filtro));
$this->dep('CI-2')->dep('cuadro-2')->set_datos(la consulta que llene este cuadro, en $this->s__filtro tenés las condiciones del filtro));
no me queda muy claro cuales son las interacciones entre los 2 cuadros, si ambos se pueden mostrar o si dependiendo de un valor en el filtro se muestra uno u otro.
En cualquier caso, si la unica opcion de organizacion fuera la que ya tenes… lo que podes hacer es meter una callback en CI-1 … que te devuelva las clausulas, la cual llamarias desde CI-2 al momento de configurar los cuadros, via $this->controlador();
De todas maneras te adjunto una imagen de como organizaria yo las cosas… aunque dependiendo como interactuen el filtro y los cuadros puede cambiar bastante.
Leonardo mas o menos lo tenia pensado igual que vos.
Richard los cuadros se podrian mostrar los dos al mismo tiempo sin problemas, traen datos de una consulta … el cuadro 1 muestra lo filtrado y el cuadro 2 lo que no entra en el filtro, por eso pense hacerlo asi, ya que usan el mismo filtro.
De la forma que lo hiciste en la imagen se verían 3 tabs teniendo el primero el filtro no? Mi idea era poder interactuar entre los tabs sin perder de vista el filtro (me parece mas comodo al usuario final)