2012-04-26 15 views
9

Capisco che Crystal Reports sia caduto in disgrazia con alcuni membri della comunità di sviluppo e forse giustamente: non l'ho usato da circa 15 anni. Ma quando l'ho fatto, ho potuto farlo cantare.Utilizzo di campi in più set di dati in SSRS

Forse è per questo che trovo gli SSRS così deludenti. Il software è goffo, non intuitivo e monodimensionale. L'ho combattuto per l'ultima settimana e sto postando qui come ultima risorsa.

Sono stato costretto a creare il mio report interamente in una tabella di SQL Server e non avrei dovuto farlo.

Ad esempio: perché non è possibile utilizzare l'espressione in una casella di testo;

Fields!Foo1.Value/Fields.Foo2.Value 

dove foo1 è in Dataset1 e foo2 è in Dataset2.

Se questo è oltre la capacità del software, va bene. Comincio a pensarlo.

Quindi forse qualcuno può rispondere a questa domanda: Qualcuno sa di altri software di report oltre a Crystal Reports e Reporting Services che è più versatile?

risposta

6

Né Crystal né SSRS consentiranno di confrontare direttamente i valori in due set di dati diversi riga per riga.

In sia strumenti:

  • Se entrambi i set di dati provengono dallo stesso database relazionale, quindi il modo più semplice per confrontare i valori è quello di combinare i due set di dati in una singola query.
  • Se entrambi i set di dati provengono da diversi database relazionali che possono essere collegati insieme (ad esempio, utilizzando Server collegati in SQLServer o Collegamenti di database in Oracle), il modo più semplice per confrontare i valori consiste nel combinare i due dataset in un singolo query che accede a entrambi i database collegati.
  • Se entrambi i set di dati provengono da origini dati che non possono essere direttamente collegate insieme, i due set di dati possono essere collegati insieme in Crystal/SSRS tramite un sottoreport. (Maggiori dettagli sul sottoreport in SSRS here.)

C'è uno strumento di reporting denominata BIRT che ha una simile segnalazione paradigma SSRS (es.un layout in stile Web, anziché l'approccio di reporting a banda Crystal), include molte delle stesse funzionalità di SSRS, è Open Source e consente di collegare insieme set di dati direttamente per creare dataset congiunti. Tuttavia, è meno intuitivo da utilizzare rispetto a Crystal o SSRS.

+0

Grazie per la risposta. –

3

Attaccare con esso - Reporting Services è una piattaforma di reporting incredibilmente flessibile.

È possibile eseguire ciò che si desidera specificando il set di dati dopo il nome del campo, ma è necessario specificare quale Foo2 si desidera o come si desidera gestire Foo2.

Il modo in cui lo fai è attraverso le funzioni di aggregazione. Per esempio, permette di dire Dataset2 ha una sola riga di dati, allora si ottiene il primo:

=Fields!Foo1.Value/First(Fields!Foo2.Value, "Dataset2") 

Se ci sono molte righe e si desidera dividere per la somma di foo2 allora si può fare questo:

=Fields!Foo1.Value/Sum(Fields!Foo2.Value, "Dataset2") 

Il punto è che si sta attualmente passando attraverso il Dataset1 - è necessario consentire a Reporting Services di sapere come gestire Dataset2 per restituire il Foo2 necessario.

+0

grazie per la risposta e l'incoraggiamento. Tuttavia, questo è solo il problema. Devo elaborare linea per linea nei dettagli, non con gli aggregati. Più precisamente, sto calcolando una colonna percentuale con valore di riga da Dataset1 e Dataset2. –

+4

Perché non solo unire le tabelle utilizzando SQL nell'origine dati e disporre di tutti i dati necessari in un'unica origine dati? –

+0

OK. Buona idea. Ci proverò. Grazie per l'aiuto. –

8

Penso che ora sarebbe stato risolto, tuttavia se stai affrontando lo stesso problema, puoi usare lookup nell'espressione.
E consentono di navigare attraverso i valori di altri set di dati, mentre v'è un campo comune in entrambi i set di dati

=Lookup(value in dataset1,value in dataset2, common field in both datasets, dataset name from which we need to get data) 
Problemi correlati