reportes desde php

Buenos dias, actualmente estoy utilizando la siguiente forma para llamar los reportes.


  //exportaciones jasperReport
    function vista_jasperreports(toba_vista_jasperreports $report)
    {
            $path = toba::proyecto()->get_path()."/exportaciones/jasper/pedidos.jasper";        
            $id = toba::memoria()->get_parametro('id_pedido');

            $report->set_parametro('id_pedido','E',$id);
            $report->set_nombre_archivo('orden-suministros'.pdf');  
            $report->set_path_reporte($path);
            $db= toba::db('*********');
            $report->set_conexion($db);
        }
    
    function extender_objeto_js()
    {
        if ($this->get_id_pantalla() == 'pant_seleccion') {
                        echo "
                            {$this->dep('cuadro')->objeto_js}.evt__imprimir = function(params) {
                                location.href = vinculador.get_url(null, null, 'vista_jasperreports', {'id_pedido': params});
                        
                                return false;
                            }
        ";
                    }
    }

Lo que necesito ahora es llamar al reporte desde un evento desde php, como lo podria hacer?
desde ya muchas gracias… Saluds

Hola Leo,

no se si termino de entenderte, ya estas llamando al reporte desde un evento en JS. Si te referis a llamarlo a partir de un evento de guardado, ahi vas a tener que volver hasta el cliente si o si y luego disparar el pedido al servicio correspondiente, sino se complica, porque quedaria el cliente con la pantalla en blanco.

Ademas para poder hacer la descarga correspondiente, tendrias que retrasar el envio de headers y asegurarte que no existe ningun otro punto en la operacion que pueda generar una salida, de otro modo sonaste. Aun asi, como te decia mas arriba… al cliente le queda la pagina en blanco ya que no le podes mandar el html de la misma.

No se si tu pregunta iba por ahi, lo mas recomendable es que lo labures a traves de un servicio particular (que podes configurar en el evento y que se dispararia en lugar de este)… que es similar a lo que venis haciendo por codigo.

Saludos