entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Perdonen que pida experto pero al menos este problema es muy complicado para mi.

el caso es que en mi empresa tienen un montón de reportes hecho en quickreport y que utilizan mediante una aplicación delphi 5, y yo estoy desarrollando una aplicación que permitirá pre visualizar reportes y gráfico mediante una aplicación web con php. la base de datos de la aplicación en delphi (un ERP) esta en dbf y es transformada a mysql por varias razones.

la aplicación esta ya casi lista tengo 12 reporte muy útiles listos pero a mis jefes les gusta la idea de agregar ademas los resportes que ya están hecho con quickreport (por ejemplo libro de venta, balance de cobros y pagos) para ahorrarnos tiempo de desarrollo. claro esta que de ser así tendría que contar con las tablas en dbf con las que originalmente trabajaban.

conozco una forma y es ejecutando delphi en el servidor para generar un cgi y que este convierte el reporte a formato html.

saludos

1 Respuesta

6votos

Leonardo-Tadei Puntos227320

O no entiendo la pregunta, o la solución es trivial...

En PHP tenés la función exec() que llama a cualquier ejecutable y captura la salida del programa.

Varias consideraciones:

  • La llamada tiene la limitación de que el ejecutable no tiene que ser interactivo, sino que correr y terminar solo, para que al terminar PHP pueda enterarse. (no debería ser dificil crear un pequeño fork del software que leyendo un parámetro en la entrada sepa que informe generar)

  • Si la ejecución es muy larga, puede que el tiempo máximo de ejecución corriendo vía Apache (o el web server que uses) no sea suficiente. Para solucionar esto hacé la llamada vía CGI.

  • Si no sospecho mal, el ejecutable Delphi no devolverá como salida el reporte, sino que generará un archivo de algún formato. Luego de la ejecución, tu script debe tomar ese archivo y transformarlo para ser visualizado en un navegador o ser enviado como una descarga al cliente. Al final, borrar el archivo generado para no jutnar basura.

Dicho todo esto, si fuera el caso de que tenés que crear un ejecutable Delphi aparte para correr de forma no interactiva, podrías agregarle que lea como parámetro de entrada qué informe mostrar y llamar directamente el exe vía CGI... es posible que no haga falta envolverlo en código PHP, sino solamente ponerle un enlace.

Saludos cordiales

PD: lo de no poder correr un programa interactivo no es una limitación de PHP, sino del paradigma web y de cómo funciona a bajo nivel el protocolo HTTP, que simplemente no tiene cómo quedarse esperando nada e interactuar con un usuario en este escenario.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta