Formulario PDF o HTML en la base de datos (o Excel) y luego combinar en un documento de Word preformateado

He estado buscando una respuesta a este problema literalmente durante años. No soy un programador completo, pero he tenido experiencia previa.

He tratado de contratar gente para hacer esto con poco éxito. He buscado un producto de software independiente que haga esto... con poco éxito.

Lo que estoy tratando de hacer es tomar una carta de formato HTML o PDF que puede elegir Entradas de botones de radio, entradas de casillas de verificación o entradas de cuadros de texto, una vez completadas ... luego para guardarlas en una base de datos de tipo, excel o mysql (más fácil sería muy apreciado de usar).

Luego, tome esa información en la base de datos y coloque los datos específicos en varias áreas específicas en un documento de Word con formato previo.

Un ejemplo sería:

Nombre: (Cuadro de texto) ABC, DEF.

Fecha: (cuadro de texto o calendario desplegable) ENE-DIC, 1-31, 0001-2016. (etc).

Sexo: (Botón de radio) MASCULINO, FEMENINO.

Elementos: (casillas de verificación) PLÁTANOS, MANZANAS, NARANJAS.

Luego, para colocar esta información en un documento de Word como:

El 2 DE MAYO DE 2016, ABC, un HOMBRE alto, y DEF, una MUJER baja, fueron a la tienda y compraron PLÁTANOS y MANZANAS. Se olvidaron de comprar NARANJAS, así que tuvieron que volver al día siguiente para conseguirlas.

1) ¿Puede alguien decirme si conoce algún software que pueda hacer esto? 2) ¿Alguien puede decirme si conocen una manera más fácil de hacer esto?

Tengo un formulario en el que tendré alrededor de 300 datos que deben colocarse en un documento de Word estructurado.

También me gustaría poder colocar la información de la base de datos, VOLVER al formulario PDF o HTML inicial para hacer las correcciones y luego volver a guardarlo en la base de datos.

La base de datos tendría cientos de personas y CADA UNO sus 300 puntos específicos de datos.

Gran proyecto.

Entonces, con eso en mente ... ¿alguien tiene alguna idea del ejemplo básico que di? Esto puede ayudarme a expandirme a la versión completa cuando tenga la base adecuada.

Gracias

Cuando guarda HTML o PDF, necesita ambos o cualquiera. Si está de acuerdo con el formulario HTML, no es tan difícil. La primera clave es darle a cada una de las preguntas un nombre único. Usar php para mostrar y capturar el formulario e ingresarlo en una base de datos. Consulte esto en php.net/manual/en/mysqli.quickstart.prepared-statements.php para obtener ideas. Es posible que deba dividir los datos en 2 o 3 tablas para manejar 300 valores.

Respuestas (4)

Lo que has descrito se puede hacer con Sharepoint. He logrado esto con éxito con SP 2010 y 2013.

En Sharepoint, cree una lista personalizada con columnas para los datos que necesita capturar. Cree un tipo de contenido de documento y reemplace la plantilla predeterminada con su plantilla de documento de Word. Cree una biblioteca de documentos con las mismas columnas que creó para su lista y aplique el tipo de contenido del documento que creó. Edite la plantilla de la biblioteca de documentos incrustando las columnas de la biblioteca donde sea necesario a través de piezas rápidas. Cree un flujo de trabajo que se active cuando se cree un nuevo elemento de lista. Configure el flujo de trabajo para crear un nuevo documento en la biblioteca de documentos y asigne valores de campo para que coincidan con los valores de campo del elemento de lista recién creado. Deberias hacer eso. Incluso puede exportar la lista a Excel si lo desea. Esto puede sonar un poco complicado, pero no lo es. Sharepointing bastante básico.

En primer lugar, muchas personas cometen el error de intentar usar MS-Excel como base de datos; no es una hoja de cálculo, no intente usarla como base de datos, ya que solo está haciendo un trabajo duro para usted .

Microsoft Office Suite incluye MS-Access , que es una base de datos en las ediciones profesionales.

LibreOffice , la solución de oficina gratuita , incluye base .

Cualquiera de los dos le permitirá diseñar formularios , con validación, para ingresar datos en una base de datos, consultas para recuperar los datos de la base de datos e informes , que son documentos que se completan con esos datos; dichos informes pueden estar en formato Word desde cualquier herramienta .

Personalmente, siempre recomendaría LibreOffice como más flexible, además de la diferencia de precio y un muy buen punto de partida: puede conectarse a varias bases de datos diferentes y usar la suya propia.

Si debe usar html como medio de entrada de datos, en lugar del front-end de Access/Base, entonces debe alojar los formularios que diseñe en un servidor y proporcionar un mecanismo de publicación para que los datos se transfieran a la base de datos y posiblemente se activen. ejecutar la consulta y producir los informes.

Se pueden crear formularios PDF (desde LibreOffice), que tienen una serie de campos que se pueden guardar en X/FDF y devolver al autor para que los datos se extraigan e ingresen automáticamente en la base de datos y posiblemente para activar la ejecución de la consulta. y la producción de los informes.

Como usted dice, fue un gran trabajo (conseguir un buen libro podría ser un excelente comienzo), la Documentación de LibreOffice es de gran ayuda, al igual que los libros básicos de documentos .

Podría echar un vistazo a Kexi http://www.kexi-project.org/ que vale la pena ganar impulso. El sitio web está un poco desactualizado, pero el desarrollador principal está trabajando duro para mejorar el software y la documentación. Encontrará la información más reciente en el foro de Kexi, que forma parte del foro de KDE.

Kexi está en un software con el espíritu de "Filemaker" o "Microsoft Access". Puede crear fácilmente plantillas de campos, que permiten completar/editar registros en la base de datos.

Actualmente, el proyecto cuenta con el apoyo de un desarrollador, pero realmente vale la pena probar el software. Kexi te permite generar informes; No recuerdo el formato de salida, pero probablemente podría convertir los documentos a Word si es necesario.

Kexi almacena proyectos en una base de datos sqlite independiente. No necesita ejecutar un servidor de base de datos como MySQL / PostgreSQL, por ejemplo. SQLite es un formato de base de datos popular y hay muchos editores (aparte de Kexi) que también le permitirán editar los registros.

Actualmente, tanto los formularios como los datos se almacenan en la misma base de datos.

Además, Kexi puede importar datos de MySQL y PostgreSQL. También hay proyectos para que pueda editar directamente bases de datos MySQL y PostgreSQL.

Kexi está disponible para Linux con KDE Desktop. También hay una versión anterior compilada como un binario para Windows, y también está en camino hacer que la nueva versión esté disponible para Windows. Probé el proyecto en Debian con KDE Desktop y también en Windows 7. Hay algunos errores menores, como errores gráficos, pero básicamente funciona.

Me gustaría hacer un prefacio de lo que estoy diciendo: tengo mucha experiencia con este tema. Aunque no hago esto para ganarme la vida, lo he hecho para muchos proyectos personales. He diseñado varios formularios que se conectan a una base de datos en el pasado.

Le sugiero que encuentre un marco PHP, descubrí que aunque php puede conectarse a la base de datos, debe codificarlo de cierta manera. Esto se debe a que, de lo contrario, será vulnerable a que los piratas informáticos hagan muchas cosas sin un montón de codificación adicional. El marco maneja automáticamente la mayoría de estas cosas por usted.

Uno de los ejemplos comunes de travesuras de piratas informáticos es mi nombre es

johnny; drop table users;

Si no desinfectó sus datos manualmente en php, el pirata informático eliminaría con éxito a todos sus usuarios. Pasé mucho tiempo escribiendo declaraciones de preparación para bloquear este tipo de comportamiento, pero muchos de los marcos de php hacen todo esto por usted.

cientos de personas es trivial para una base de datos cuando obtiene 50,000-100,000 personas, tendrá una base de datos pequeña. No recomiendo Excel ya que no puede hacer bien formularios o PDF , y tiene otras limitaciones.

Sería mejor usar una base de datos mysql y un servidor web con soporte php, preferiblemente la versión php7 y 7.2 si puede administrarlo.

La solución aquí es de 2 partes.

  1. Introducir los datos en la base de datos
  2. Sacarlo.

Sacarlo es tan simple como una combinación de correspondencia. Vea esta respuesta que escribí sobre cómo configurar una conexión de base de datos https://superuser.com/questions/1259086/getting-data-from-mysql-into-microsoft-word/1259409#1259409

Hello <Insert column 1 here>,

Según sus necesidades de formulario, HTML(5) cubre todas sus necesidades.

Ahora necesitamos vincular eso a una base de datos. Es posible que pueda usar JQuery, pero sé que se puede hacer en php.

Dependiendo de su nivel de habilidad, puede codificar directamente en php o usar un marco. La desventaja de usar un marco es que tienes que aprender a programar en él. La ventaja es que se encargan de la mayor parte del trabajo técnico por usted. Acabo de empezar a usar https://laravel.com/

El beneficio para el marco es que maneja todo el trabajo complicado de evitar que los piratas informáticos utilicen la inyección mysql y otras cosas malas. Pretrata automáticamente la mayoría de los valores ingresados. Ahora todavía tiene que hacer algunas pruebas de entrada para asegurarse de que no ingresen valores tontos como 1 o 999 para la edad. Muchos de los marcos php incluso permiten que cada usuario configure una cuenta en la que puede iniciar sesión con un nombre de usuario y una contraseña. Solo se necesita una pequeña cantidad de código para manejar todo lo relacionado con los inicios de sesión, incluido el cifrado de la contraseña.

PHP oculta la mayoría de las cosas molestas de la base de datos que puede experimentar en otros lenguajes de programación. Un marco oculta aún más de las complejidades.

Recuperar los datos en un HTML desde la base de datos también sería relativamente fácil, especialmente si usa un marco.

Para mayor eficiencia, querrá dividir sus 300 columnas en al menos 3 tablas.

Hacerlo en un PDF no es ideal, y HTML hará que ingresar y volver a mostrar sus datos sea mucho más fácil. HTML fue literalmente diseñado para este propósito.

Probablemente querrá hablar con una persona de la base de datos eventualmente para dividir correctamente sus datos en varias tablas para obtener el mejor rendimiento posible. En el diseño de bases de datos existe lo que se llama la "quinta forma normal" y sería mejor alguien que pueda organizar sus datos de esta manera.