Esiste un modo per riciclare un set di dati Crystal Reports?
-
08-06-2019 - |
Domanda
Sto cercando di scrivere un Crystal Report che abbia i totali raggruppati in modo diverso rispetto al report principale.L'unico modo in cui sono riuscito a farlo finora è utilizzare un sottoreport per i totali, ma significa dover accedere nuovamente all'origine dati per recuperare gli stessi dati, il che sembra una sciocchezza.Ecco un esempio semplificato:
date name earnings source location
-----------------------------------------------------------
12-AUG-2008 Tom $50.00 washing cars uptown
12-AUG-2008 Dick $100.00 washing cars downtown { main report }
12-AUG-2008 Harry $75.00 mowing lawns around town
total earnings for washing cars: $150.00 { subreport }
total earnings for mowing lawns: $75.00
date name earnings source location
-----------------------------------------------------------
13-AUG-2008 John $95.00 dog walking downtown
13-AUG-2008 Jane $105.00 washing cars around town { main report }
13-AUG-2008 Dave $65.00 mowing lawns around town
total earnings for dog walking: $95.00
total earnings for washing cars: $105.00 { subreport }
total earnings for mowing lawns: $65.00
In questo esempio, il report principale è raggruppato per "data", ma i totali sono raggruppati inoltre per "fonte".Ho cercato esempi di utilizzo dei totali parziali, ma non fanno realmente ciò di cui ho bisogno.Non esiste un modo per archiviare il set di risultati e fare in modo che sia il report principale che il sottoreport facciano riferimento agli stessi dati?
Soluzione
Hmm...per quanto sia bello chiamare il proc memorizzato dal rapporto e averlo tutto contenuto in un'unica posizione, tuttavia abbiamo scoperto (come te) che alla fine raggiungi un punto in cui non puoi far sì che Crystal faccia quello che vuoi, anche se i dati sono proprio lì.
Alla fine abbiamo introdotto un livello aziendale che si trova sotto il report e invece di "estrarre" i dati dal report, "inseriamo" i set di dati su di esso e colleghiamo i dati al report.Il vantaggio è che è possibile manipolare i dati nel codice nei set di dati o negli oggetti prima che raggiungano il report e quindi associare semplicemente i dati al report.
Questo articolo ha una bella introduzione su come impostare l'invio dei dati ai report.Capisco che i tuoi vincoli di tempo/azienda potrebbero non consentirti di farlo, ma se fosse possibile, lo consiglio vivamente poiché ciò significa che possiamo rimuovere tutta la "codifica" dai nostri report e nel codice gestito che è sempre una buona cosa.
Altri suggerimenti
L'unico modo in cui posso pensare di farlo senza una seconda analisi dei dati sarebbe creare alcune formule per ottenere i totali parziali per gruppo.Il problema che presumo tu stia riscontrando con i totali parziali esistenti è che sono destinati a seguire ciascuno dei gruppi di cui stanno totalizzando.Dal momento che sembra che tu voglia che i totali parziali seguano tutti i dati "grezzi", questo non funzionerà.
Se crei le tue formule per ciascun gruppo che aggiungono semplicemente il totale delle righe corrispondenti al gruppo, dovresti essere in grado di posizionarle alla fine del report.Lo svantaggio di questo approccio è che i totali parziali risultanti non saranno dinamici in relazione ai gruppi.In altre parole, se avessi una nuova "fonte", non verrebbe visualizzata nei totali parziali finché non la aggiungerai o se non disponi di dati sulla "passeggiata con il cane" avresti comunque un totale parziale.