2010-07-13 25 views
5

Come utilizzare Excel per generare report personalizzabili dall'utente finale. I dati devono essere recuperati dal database Oracle/SQL Server in base a query e report devono essere generati in Excel.Come creare report personalizzabili basati su modelli basati su Excel

Desidero progettare una soluzione per l'utente finale (che ha conoscenza della scrittura di query di database & di Excel) per la generazione di report secondo il suo requisito di modifica, in modo che non abbia alcuna dipendenza dal team di sviluppo per la modifica di oggi giorno nei requisiti del report.

ho progettato questo tipo di applicazione utilizzando C# & report Crystal in precedenza, che richiede tre cose: 1. cristallo modello di rapporto di query di database avendo 2. criteri di filtro (su cui i dati vengono letti dal database). 3. Componente di generazione del controllo utente dinamico (ad esempio casella di testo, discesa ecc.) Come per criteri di filtro Controllo richiesto (definito nella tabella del database per utente finale).

Se l'utente finale conosce la progettazione di report Crystal, può progettare il proprio modello di report Crystal insieme alla query di database incorporata nel report Crystal. Il mio software genera controlli utente dinamici come definiti nel database per quel modello di report. Questi criteri di filtro vengono passati alla query definita nel report Crystal in modo che il report desiderato possa essere generato secondo i suoi criteri di filtro. Questo lo ha aiutato nel giorno della ristorazione oggi a segnalare i requisiti in continua evoluzione.

Ora voglio progettare una soluzione simile utilizzando Excel, sostituendo il modello di report Crystal con il modello Excel. La mia proposta iniziale è così che sostituirò il report Crystal con il template excel con pochi parametri fissi & pochi parametri di report variabili (che verranno dal database come da query), resto userò dalla mia precedente soluzione.

Non so

  • Come definire i parametri di report in Excel ?
  • Come generare il report multi pagina (quando il database restituisce il set di dati di più di un record)?
  • Come reportimpaginato come report Crystal fa quando i risultati devono essere visualizzati su più pagine?
  • Come definire Intestazione report & area footer in Excel da visualizzare su più pagine report?

So che queste cose possono essere fatte usando la programmazione macro (definita in quel modello di report Excel) ma che non sarà facile per l'utente finale, voglio avere una semplice soluzione generalizzata che posso implementare una volta nella mia programma C# in modo che l'utente finale (con poca conoscenza excel) possa progettare/modificare il report secondo le sue necessità senza avere grossi problemi di programmazione, come ho fatto nella mia soluzione precedente (C# & report Crystal).

Grazie in anticipo per risparmiare tempo prezioso, supporto e assistenza.

Saluti. Gopal Parikh.

risposta

2

Questo sarà un progetto molto impegnativo, soprattutto perché Excel non è realmente uno strumento di reporting come Crystal Reports.Ho creato moltissimi report in Excel e ognuno di essi è stato una soluzione personalizzata, adattata alle esigenze degli utenti. La creazione di uno strumento di report generico in Excel richiederà un sacco di "riempimento" nel set di funzionalità di Excel.

Come definire i parametri del report in Excel?

Non ci sono davvero parametri di report in Excel, almeno non nello stesso modo in cui ci sono per Crystal Reports. Se si prevede di utilizzare C# e VSTO, è possibile creare un modulo (o utilizzare il riquadro attività) affinché l'utente possa immettere i parametri. È anche possibile provare a utilizzare VBA/VSTO e utilizzare gli oggetti dati Excel nativi (QueryTables, ListObjects e PivotTables), che potrebbero fornire alcune opzioni predefinite per i parametri. Se si desidera che l'utente sia in grado di creare i propri report, è necessario creare una sorta di procedura guidata di report per aiutarli a configurare e gestire questi "parametri".

Come generare report a più pagina (quando database restituisce dataset di più di un record)?

Come impaginare il rapporto come il report di cristallo quando i risultati devono essere visualizzati su più pagine ?

Entrambi questi sono problemi simili, se li capisco correttamente. Tutte le funzioni di impaginazione che vedi in Crystal Reports (ad es., "Mantieni la sezione insieme", "ripeti intestazioni", ecc.) Dovranno essere codificate in Excel, perché semplicemente non esistono. Poiché Excel non ha davvero nulla di analogo ai raggruppamenti di Crystal Reports, questo sarebbe un problema impegnativo da affrontare, penserei. Come si definisce una regione in Excel come qualcosa da "tenere insieme" quando si stampa su una nuova pagina? Come si aggiungono spazi vuoti alla fine della pagina precedente (in genere Excel tenta di ridimensionare le dimensioni)? Il modello a oggetti è lì, e sembra certamente fattibile, richiede solo molto tempo e molto tempo.

come definire Relazione intestazione & piè zona in Excel per visualizzare sul Segnalare sito mulitple?

Questo non è in realtà troppo difficile, in quanto vi sono oggetti di intestazione e piè di pagina che è possibile utilizzare. Dovresti aggiornare manualmente i valori, poiché in genere non puoi avere informazioni "dinamiche" (nessuna formula, nessun oggetto dati, ecc.). Potresti anche utilizzare le "Righe da ripetere in alto" se ti servisse maggiore flessibilità.

In generale, Excel è davvero lo strumento sbagliato per questo tipo di lavoro. Excel può essere un potente strumento di reportistica, ma in genere richiede una buona conoscenza di Excel e alcune funzionalità non sono disponibili nemmeno per gli utenti esperti (senza scrivere alcun VBA pesante).

1

Date un'occhiata a questo:

Create Excel (.XLS and .XLSX) file from C#

Esso consente di creare un file di modello di Excel in base alle proprie esigenze. L'utente finale nel caso estremo avrebbe solo bisogno di personalizzare il modello. Questa è una cosa facile da fare. Personalizza per includere o eliminare colonne, etichette, formule, ecc.

Questa soluzione sembra essere perfetta per gli utenti finali che conoscono Excel & scrittura di query di database.

Problemi correlati