Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Mensaje en pantalla mientras procesa (https://www.clubdelphi.com/foros/showthread.php?t=52120)

gina 10-01-2008 23:37:07

Mensaje en pantalla mientras procesa
 
Hola estoy terminando una aplicacion en php que genera un reporte en pdf con la libreria fpdf, mientras el hace la consulta se demora un poco.....quiero que mientras genera el pdf aparezca en pantalla un mensaje que diga procesando...... algo asi, espero que me haga entender. Se q se puede hacer pero no tengo idea como, sera q me pueden ayudar?
Gracias!!!

dec 10-01-2008 23:41:56

Hola,

Puede que la función "flush()" te sirva, depende de cómo tengas "montado" el asunto y qué quieras hacer, exactamente. También podrías mostrar un sencillo "GIF" animado que indicara que la tarea está en progreso. Ambas cosas podrían dar resultado. Creo que, por lo que dices, esto último podría resultar más indicado, pero, no estoy seguro.

gina 10-01-2008 23:50:54

Cita:

Empezado por dec (Mensaje 257295)
Hola,

Puede que la función "flush()" te sirva, depende de cómo tengas "montado" el asunto y qué quieras hacer, exactamente. También podrías mostrar un sencillo "GIF" animado que indicara que la tarea está en progreso. Ambas cosas podrían dar resultado. Creo que, por lo que dices, esto último podría resultar más indicado, pero, no estoy seguro.

Gracias por responderme, la verdad es que hay muchas cosas de php que nunca he manejado....mira lo que hago es mediante la aplicacion que esta en php, hacer una conexion a una base de datos firebird el usuario selecciona un rango de fechas y tengo dos opciones una generar el reporte en html (Para este no se demora nada) y la otra generar el reporte en pdf, cuando doy clic en este boton el abre otra ventana en el navegador y empieza a generar el reporte.........pero mientras hace esto se demora un poco........que puedo hacer......nunca he manejado la funcion flush que tu me dices y lo del Gif creo q es lo q quiero pero no se como hacerlo.
gracias!:)

dec 11-01-2008 00:23:40

Hola,

La cosa sería más o menos como sigue. Como tú dices rediriges al usuario a un script que se encarga de generar cierto reporte en PDF. Yo creo que podrías aprovechar dicho script e imprimir (HTML) cierta imagen, como pudiera ser la que adjunto (pero es sólo un ejemplo).

Justo a continuación de imprimir, dar salida a la imagen en cuestión, el script se pone a generar el reporte PDF. Y, cuando termine esta tarea, el mismo script podría "ocultar" la imagen que indica el progreso de la tarea, o redirigir al usuario a cualquier otro sitio.

Iba a adjuntarte un archivo, pero, veo que he excedido mi cuota. Así que aquí mismo puedes ver un ejemplo de lo que hablo. Y puedes descargar los archivos implicados desde aquí. Fíjate que los archivos están en un servidor Linux, de manera que la función "flush()" se comporta como se espera. Según el manual de PHP, la función "flush()" no se comporta igual en Windows. Tendrás que mirar, porque hay que hacer alguna que otra cosa además.

Fíjate que al entrar en el ejemplo se te mostrará una imagen que indica el progreso de una supuesta tarea. A los cinco segundos (que tarda en llevarse a cabo la tarea simulada) podrás ver un mensaje "Reporte generado", que indicará que la tarea se llevó a cabo. En ese momento podrías redirigir al usuario a otro lugar, ocultar la imagen que indica el progreso, en fin, eso ya depende.

jachguate 11-01-2008 00:35:54

Como ha dicho ya david, esto depende mucho de cómo lo tengas montado.

Podrías presentar una página "intermedia" que diga un mensaje como "espere, estamos trabajando..." y que esta haga una redirección a la página que genera el pdf. Mientras esta página se carga, el usuario verá el mensaje.

Otra cosa es tener un gif, como ya ha dicho también david, pero invisible, y activarlo por javascript justo antes de mandar a generar el pdf.

Hasta luego.

;)

jachguate 11-01-2008 00:38:24

Aclaro que escribí mi post anterior antes de ver la última respuesta de dec, que está mucho mas elaborada.

Hasta luego.

;)

keyboy 11-01-2008 07:02:15

Estuve viendo el ejemplo que presentan, pero en mi caso la imagen no aparece sino hasta que termina de generarse el reporte. Leyendo la entrada del manual que enlazan, veo el siguiente comentario de un usuario:

Cita:

If flush() don't work remember to check if you have any antivirus caching the data sent to the browser.
Y, en efecto, al desactivar el antivirus (avast), el ejemplo funciona perfectamente.

Pensando una solución alterna, probé con ajax y al parecer funciona este ejemplo basado en el de ustedes.

Código PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<
html>
<
head>
<
meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
<
title>Reportes en PDF</title>
<
script type='text/javascript'>
/**
 * Crea un objeto HTTPRequest (peticiones HTTP en segundo plano)
 *
 * Posiblemente haya que ampliarla paa abarcar más casos.
 */
function createRequest()
{
    if (
window.XMLHttpRequest)
    {
        return new 
XMLHttpRequest();
    }
    else if (
window.ActiveXObject)
    {
        return new 
ActiveXObject('Microsoft.XMLHTTP');
    }

    return 
null;
}

/**
 * Manejador del evento onload
 *
 * Una vez cargada la página, hacemos una petición HTTP en segundo plano para
 * iniciar la generación del reporte. Cuando esté terminado, el evento
 * onreadystatechange se activará y ahí pondremos visible el mensaje.
 */
window.onload = function()
{
    var 
request createRequest();
    
    
request.onreadystatechange = function()
    {
        if (
request.readyState == && request.status == 200)
        {
            
oMensaje document.getElementById('mensaje');
            
oMensaje.style.display 'block';
        }
    }
    
    
request.open('get''reporte.php'true);
    
request.send();
}
</script>
</head>
<body>

<div style="text-align: center;">
    <img src="icon_inprogress.gif" width="180" 
     height="180" alt="Generando el reporte PDF..." /> 
</div>

<div style='text-align: center; display: none' id='mensaje'>
<h1>Reporte generado</h1>
</div>

</body>
</html> 

Bye

gina 05-02-2008 17:54:37

Mensaje en pantalla mientras procesa
 
Hola niños muchisimas gracias por la ayuda........por fin pude resolverlo utilizando ajax, la verdad es que no tenia ni la mas minima idea pero bueno para eso estamos, para aprender......:) ....besitos!

jachguate 05-02-2008 19:07:39

Hola.

Cita:

Empezado por gina (Mensaje 263561)
Hola niños muchisimas gracias por la ayuda....
....
....besitos!

Supongo que sabes lo que haces emitiendo un mensaje como este en un sitio con el 99.5% de hombres y solo el 0.5% de "niñas"....

Creo que habría que añadir a la guía de estilo una "clausula" indicando que no nos hacemos responsables por bandejas de correo llenas de proposiciones amorosas... :D :D :D :D

(buen rollo)

"besitos"

;)

lucasarts_18 05-02-2008 19:28:22

Cita:

Empezado por jachguate (Mensaje 263588)

Creo que habría que añadir a la guía de estilo una "clausula" indicando que no nos hacemos responsables por bandejas de correo llenas de proposiciones amorosas... :D :D :D :D

JaJaJaJaJa, no he podido parar de reirme....salió en el momento preciso.:D

Hasta Luego .-

gina 05-02-2008 20:05:07

ups........perdon prometo no volver a hacerlo!!!:confused:

dec 05-02-2008 20:27:23

Hola,

Era una broma gina: tú manda los besitos que te apetezca, cuando te apetezca. ;)

jachguate 05-02-2008 22:10:21

Cita:

Empezado por gina (Mensaje 263607)
ups........perdon prometo no volver a hacerlo!!!:confused:

Por favor!!!

¿quien dijo que no lo hicieras?

Por nosotros encantados :p

Solo quise advertir de la "vulnerabilidad". :D :D :D

(ves las carcajadas? :D)

Delphius 05-02-2008 23:44:39

No pude evitar meterme en el hilo:p;).

jachguate, hubiera sido mejor no haber dicho nada.
Gina, como te estaban diciendo, no hiciste nada malo... como podrás comprobarlo tu misma aqui la amplia mayoría son varones.

Y bueno... no estamos acostumbrados a que un mensaje finalice así.

Bueno, yo estoy acostumbrado... mis amigas y compañeras de estudio al chatear o hablar por teléfono terminan la conversación así... está de moda la frase.

Tal parece que todavía no se le pegó a estos viejos:D:p:)

Te vas a tener que acostumbrar, a estas inocentes bromitas. Si te das un paseo por la taberna sabrás de que hablo.

No me extiendo más porque de seguro dec, y/o jachguate van a pensar algo mal.:D

Saluditos,
PD: Que también está de moda finalizar así.

gina 05-02-2008 23:48:45

Me alegra saber que era solo una broma y pues se van a ir acostumbrando por q asi somos la nenas!!! bastante expresivas! No se preocupen yo seguire siendo la misma! :) jejeje!!

eduarcol 06-02-2008 02:01:57

Cita:

Empezado por gina (Mensaje 263670)
Me alegra saber que era solo una broma y pues se van a ir acostumbrando por q asi somos la nenas!!! bastante expresivas! No se preocupen yo seguire siendo la misma! :) jejeje!!

ese es el problema aqui hay muy pocas nenas, y por alguna extraña razon las que estan ya casi ni nos hablan, la verdad no entiendo porq sera :confused:

Delphius 06-02-2008 02:24:37

Cita:

Empezado por eduarcol (Mensaje 263699)
ese es el problema aqui hay muy pocas nenas, y por alguna extraña razon las que estan ya casi ni nos hablan, la verdad no entiendo porq sera :confused:

¿No será que nos pasamos de roscas con el machismo?:rolleyes::(:D
Ya me imagino un aviso clasificado:

Cita:

Se solicitan señoritas que hagan compañia a los miembros de clubdelphi.
Gina, podrías traer a tus amigas:rolleyes:;)

Ya ven lo que me hacen hacer! Otro hilo desvirtuado!:D

Saludos,

jhonny 06-02-2008 13:46:58

Cita:

Empezado por gina (Mensaje 263670)
Me alegra saber que era solo una broma y pues se van a ir acostumbrando por q asi somos la nenas!!! bastante expresivas! No se preocupen yo seguire siendo la misma! :) jejeje!!

Si, me consta :D:D:D

lucasarts_18 06-02-2008 13:55:55

chicos!!! despues dicen por que no hay muchas mujeres en clubdelphi....:D,
por algo será!!!! :rolleyes:

Hasta Luego .-

Ñuño Martínez 06-02-2008 14:07:21

¡Cuánta desesperación estoy leyendo! A ver si va a ser verdad el mito ese que dice que "En Internet no hay mujeres/chicas".


La franja horaria es GMT +2. Ahora son las 06:59:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi