2012-05-03 38 views
12

Sé que esto es un poco subjetivo, pero estoy investigando la siguiente situación:¿Cómo producir documentos (docx o pdf) desde SQL Server?

Necesito producir una cantidad de documentos automáticamente a partir de datos en una base de datos SQL Server. Habrá una aplicación MVC3 en la base de datos para permitir la entrada de datos, etc. y (probablemente) un botón "Ir" para producir los documentos.

Tiene que haber alguna lógica comercial sobre cómo se crean, nombran y almacenan estos documentos (por ejemplo, los documentos "Parent" reciben un nombre y van en una carpeta, los documentos "Child" obtienen un nombre calculado y van en una sub- carpeta.

los documentos pueden ser o bien PDF o DOC (x) (o incluso ambos), siempre que la salida puede estar en eN-US y AR-QA (RTL texto)

sé que hay una cantidad de opciones de SSRS, Crystal Reports, VSTO, PDF "manual" en código, combinación de correspondencia de palabra, etc. ... ¿y ya tenemos una herramienta de HTML a PDF?

Does ¿Alguien tiene algún consejo en el mundo real sobre cómo hacer esto y cuál sería el "mejor" enfoque (más pragmático)? Los "extras" menos que necesitan para instalar y configurar en el servidor el mejor - el más rápido el desarrollo de la mejor (como siempre !!)


resultados hasta la fecha:

Combinar correspondencia de Word (o VSTO) Simplemente no ofrece la simplicidad, el control y la flexibilidad que necesito, realmente es una pena. Sería bueno definir un puntox y poder pasar los datos a él de forma individual para generar el docx. La única forma en que pude lograr esto (y puedo estar equivocado aquí) fue recorrer los controles/marcadores por nombre y reemplazar los valores ... desordenados.

OpenXML Creación de documentos basados ​​en plantillas dotx, incluso utilizando OpenXML no es tan simple como (en mi humilde opinión) que debe ser. Debe reemplazar cada control de contenido por su nombre, por lo que el mantenimiento no es la tarea más simple.

SSRS En vista de ello esta es una buena solución (aunque necesita SQL), sin embargo se vuelve más complicado si se quiere producir de forma dinámica las carpetas y documentos. La suscripción basada en datos se acerca mucho a lo que yo quiero.

Conversor de HTML a PDF Winnovative * Esta es la herramienta que ya tenemos (aunque sea una versión .NET 2.0). Esto me permite generar las páginas HTML y convertirlas a PDF. Una buena opción para mí, ya que puedo ejecutar esto en un sitio web MVC3 y paso los parámetros en los controladores para generar los PDF. Esto me da un control mucho más detallado sobre la carpeta y las estructuras de nombres: el problema con este método es simplemente generar las páginas de la manera correcta. Una ventaja es que automáticamente me da una "vista previa" ... ¡básicamente solo la página HTML!

+0

Es realmente una [suscripción controlada por datos] (http://msdn.microsoft.com/en-us/library/ms159150 (v = sql.100) .aspx) en SSRS (que necesita la necesidad de Enterprise Edición) o simplemente un informe bajo demanda? Creo * que puede usar el cliente RS integrado para procesar directamente en PDF o Word o simplemente presentar el informe al usuario en su página web y permitirles dirigir las acciones de guardado. – billinkc

+0

Para un único informe, sería genial, sin embargo, el resultado final (en este caso) es una jerarquía de varios niveles de informes. Básicamente, necesitamos producir informes específicos para todos nuestros clientes, sus accionistas, miembros de la junta y subsidios, incluidos sus accionistas, miembros de la junta, etc. para un organismo regulador. Hay reglas sobre a qué nivel se informa cada uno, etc. – BlueChippy

+0

Es bueno que edite la publicación original como referencia. ¿Revisó las capacidades de tecnologías como Silverlight y WPF? – Steffe

Respuesta

4

Office OpenXML es una manera agradable y sencilla de generar archivos de Office. XSLT puede ser una herramienta sólida para formatear su contenido. Esta tecnología no le permitirá crear archivos PDF.

El desarrollo rápido sin utilizar componentes de terceros será difícil. Pero si consideras usar un servidor de informes, asegúrate de revisar BIRT o Jasper.

Para generar pdf he estado usando el Report.net en desuso.Tiene muchos puertos a diferentes idiomas y aún es suficiente para hacer simples pdf. Report.net on sourceforge

2

No creo que el propio SQL Server pueda producir archivos pdf. Lo que puede hacer es, como mencionó, instalar una instancia de SSRS y crear un informe que produzca la información que necesita. Luego puede crear una suscripción para entregar su informe donde desee, cuando lo desee.

Aquí es un ejemplo de una suscripción sencilla: enter image description here

+0

¿Puede SSRS crear también una estructura/nombre de archivo de carpeta dinámica? – BlueChippy

+0

sí, en una suscripción regular, puede crear nombres de archivos dinámicos (consulte las opciones de sobrescritura) en la pantalla de impresión. Si necesita algo más elaborado, como carpetas dinámicas, necesita una suscripción a data_driven – Diego

0

Ir para SSRS sólo si estás bien con su puesta en marcha en el servidor y no hay una clara necesidad de planificación de notificaciones e informes complejos.

Si tiene un código para la generación manual de PDF/docx, le sugiero que siga adelante con él. Afortunadamente, la complejidad de su código no es asunto suyo.

He usado ambos en escenarios separados. Usamos clases y objetos de Excel de .NET para generar informes mínimos desde una aplicación web.

Pero optamos por un elaborado sistema de informes para un sistema que requería que 1000 informes se generaran de manera programada y se entregaran a un grupo seleccionado de personas.

+0

Gracias - no se requiere programación, es más un caso de poder reemplazar stubs con datos en una "plantilla" de algún tipo y luego guardarlos en ubicaciones específicas/nombres – BlueChippy

Cuestiones relacionadas