Question

Je suis en train d'écrire un Rapport Crystal qui a totaux regroupés dans une autre façon de le rapport principal.La seule façon que j'ai pu faire jusqu'à présent, est d'utiliser un sous-état pour les totaux, mais cela signifie avoir à frapper à la source de données à nouveau pour récupérer les mêmes données, ce qui semble absurde.Voici un exemple simplifié:

       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

Dans cet exemple, le rapport principal sont regroupées par "date", mais les totaux sont regroupés en outre par "source".J'ai regardé les exemples d'utilisation des cumuls, mais ils n'ont pas vraiment faire ce dont j'ai besoin.N'est-il pas un moyen de stocker l'ensemble de résultats et d'avoir à la fois le rapport principal et le sous-état de référence, les mêmes données?

Était-ce utile?

La solution

Hmm...aussi beau que c'est d'appeler la procédure stockée à partir du rapport et l'avoir tout dans un seul endroit, cependant nous avons trouvé (comme vous) que vous finirez par atteindre un point où vous ne pouvez pas obtenir de cristal à faire ce que vous voulez, même quand les données sont là.

Nous avons fini par l'introduction d'une couche de gestion qui se trouve sous le rapport et, plutôt que de "tirer" les données de ce rapport, nous "pousser" les jeux de données et la liaison de données pour le rapport.L'avantage est que vous pouvez manipuler les données dans le code dans des jeux de données ou des objets avant qu'il n'atteigne le rapport et puis il suffit de lier les données du rapport.

Cet article a une belle intro sur la configuration de l'envoi de données pour les rapports.Je comprends que votre temps/contraintes pour les entreprises peut ne pas vous permettre de faire cela, mais si c'est possible, je recommande fortement car c'est censé nous pouvons supprimer toutes les "codage" de nos rapports et dans le code managé qui est toujours une bonne chose.

Autres conseils

La seule façon que je peux penser de le faire sans une seconde courir à travers les données seraient en créant des formules pour les totaux par groupe.Le problème, je suppose que vous sont en train de faire avec l'existant totaux en cours d'exécution, c'est qu'ils sont destinés à suivre chacun des groupes qu'ils sont totalisant.Puisque vous semblez vouloir le sous-totaux à suivre après tous les "brutes" data cela ne fonctionnera pas.

Si vous créez vos propres formules pour chaque groupe qui ajoute simplement sur le total de ces lignes correspondant à la groupe, vous devriez être en mesure de les placer à la fin du rapport.L'inconvénient de cette approche est que les sous-totaux ne sera pas dynamique dans la relation pour les groupes.En d'autres termes, si vous aviez une nouvelle "source", il n'apparaîtra pas dans les sous-totaux jusqu'à ce que vous l'avez ajouté ou si vous n'avait pas de chien de pied " des données vous auriez encore un sous-total pour elle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top