2012-05-03 16 views
12

So che questo è un po 'soggettivo, ma sto esaminando la seguente situazione:Come produrre documenti (docx o pdf) da SQL Server?

Ho bisogno di produrre automaticamente un numero di documenti dai dati in un database SQL Server. Ci sarà un'app MVC3 sul database per consentire l'inserimento dei dati ecc. E (probabilmente) un pulsante "Vai" per produrre i documenti.

Ci deve essere una certa logica aziendale su come questi documenti vengono creati, nominati e memorizzati (ad esempio i documenti "Genitori" ottengono un nome e vanno in una cartella, i documenti "Bambini" ottengono un nome calcolato ed entrano in un sotto- cartella.

I documenti possono essere sia PDF o Doc (x) (o addirittura entrambi), fino a quando l'uscita può essere in EN-US e AR-QA (RTL text)

io so che ci sono un numero di opzioni da SSRS, Crystal Reports, VSTO, PDF "manuale" nel codice, unione di parole, ecc ... e abbiamo già uno strumento HTML in PDF se questo è utile?

qualcuno ha qualche consiglio sul mondo reale su come fare questo e quale sarebbe l'approccio "migliore" (più pragmatico)? Gli "extra" meno ho bisogno di installare e configurare in un server in meglio - il più veloce lo sviluppo del meglio (come sempre !!)


risultati finora:

stampa unione di Word (o VSTO) Semplicemente non offre la semplicità, il controllo e la flessibilità di cui ho bisogno - vergogna davvero. Sarebbe bello definire un dotx ed essere in grado di passare i dati ad esso su base individuale per generare il docx. L'unico modo in cui potrei ottenere questo (e potrei sbagliarmi qui) era di passare attraverso controlli/segnalibri per nome e sostituire i valori ... disordinati.

OpenXML La creazione di documenti basati su modelli DOTX, anche utilizzando OpenXML non è così semplice come (IMHO) dovrebbe essere. È necessario sostituire ogni controllo contenuto per nome, quindi la manutenzione non è il compito più semplice.

SSRS Sulla faccia di esso Si tratta di una buona soluzione (anche se ha bisogno di SQL Enterprise), ma diventa più complicato se si vuole produrre in modo dinamico le cartelle e documenti. L'abbonamento basato sui dati diventa molto vicino a ciò che voglio però.

Winnovative HTML to PDF Convertor * Questo è lo strumento che abbiamo già (anche se una versione .Net 2.0). Questo mi consente di generare pagine HTML e convertirle in PDF. Una buona opzione per me dal momento che posso eseguire questo su un sito MVC3 e passare i parametri nei controller per generare i PDF. Questo mi dà un controllo molto più preciso sulla cartella e sulle strutture di denominazione: il problema con questo metodo è semplicemente generare le pagine nel modo corretto. Un bonus è che mi dà automaticamente un'anteprima ... basicamente solo la pagina HTML!

+0

È davvero un [Data-Driven subscription] (http://msdn.microsoft.com/en-us/library/ms159150 (v = sql.100) .aspx) in SSRS (che richiede la necessità di Enterprise Edizione) o solo un rapporto su richiesta? I * think * è possibile utilizzare il client RS incorporato per eseguire il rendering direttamente in PDF o Word o semplicemente presentare il report all'utente nella pagina Web e consentire loro di dirigere le azioni di salvataggio. – billinkc

+0

Per un singolo report questo sarebbe ottimo, tuttavia il risultato finale (in questo caso) è una gerarchia di più livelli di report. Fondamentalmente, abbiamo bisogno di produrre rapporti specifici per tutti i nostri clienti, i loro azionisti, i membri del consiglio di amministrazione e le sovvenzioni - compresi gli azionisti THEIR, i membri del consiglio di amministrazione ecc. Per un ente di regolamentazione. Ci sono delle regole su a quale livello vengono riportate ciascuna, ecc. – BlueChippy

+0

È bello modificare il post originale come riferimento. Ti è capitato di verificare le funzionalità di tecnologie come Silverlight e WPF? – Steffe

risposta

4

Office OpenXML è un modo semplice e intuitivo per generare file di Office. XSLT può essere un forte strumento per formattare il contenuto. Questa tecnologia non ti permetterà di creare pdf.

Lo sviluppo rapido senza l'utilizzo di componenti di terze parti sarà difficile. Ma se si considera l'utilizzo di un server di report, assicurarsi di controllare BIRT o Jasper.

Per generare il pdf ho utilizzato il deprecato Report.net.Ha molte porte in diverse lingue ed è ancora sufficiente per fare semplici pdf. Report.net on sourceforge

2

Non penso che SQL Server stesso possa produrre file PDF. Quello che puoi fare è, come hai detto, installare un'istanza di SSRS e creare un rapporto che produca le informazioni di cui hai bisogno. Quindi puoi creare un abbonamento per consegnare il tuo rapporto dove vuoi, quando vuoi.

Ecco un esempio di una semplice iscrizione: enter image description here

+0

SSRS può anche creare una struttura di cartella dinamica/nome file? – BlueChippy

+0

sì, con un abbonamento regolare, è possibile creare nomi di file dinamici (vedere le opzioni di sovrascrittura) nella schermata di stampa. Se hai bisogno di qualcosa di più elaborato, come le cartelle dinamiche, hai bisogno di un abbonamento data_driven – Diego

0

Go per SSRS solo se si è a posto con la sua creazione su un server e v'è una chiara necessità per la segnalazione programma e report complessi.

Se si dispone del codice per la generazione manuale di PDF/docx, suggerirei di procedere. Speriamo che la complessità del suo codice non sia un problema per voi.

Ho usato entrambi in scenari separati. Abbiamo utilizzato classi e oggetti Excel da .NET per una segnalazione minima da un'applicazione web.

Ma è andato per un elaborato schema di segnalazione per un sistema che richiedeva la generazione di migliaia di rapporti in modo pianificato e consegnati a un gruppo selezionato di persone.

+0

Grazie - Nessuna pianificazione è richiesta, è più un caso di essere in grado di sostituire gli stub con dati in un "modello" di qualche tipo e quindi salvare in posizioni specifiche/nomi. – BlueChippy

Problemi correlati