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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top