Comment grouper plusieurs jeux de résultats dans un rapport?
-
07-07-2019 - |
Question
J'utilise ActiveReports avec ASP.NET, mais je pense pouvoir répondre à tout composant de rapport similaire.
J'ai deux résultats à fusionner et à afficher dans un seul rapport, par exemple:
Table 1:
Name Job Start End
Jack Some service 1992 1997
Jack Some Sales Exp 1998 2007
Jane Some programming 2000 2003
Table 2:
Name Training
Jack Shiny French Certificate
Jane Crappy database certificate
Jane Some courses in management
Et le rapport devrait ressembler à:
Jack
Job History:
Some Corp, 1992-1997
Some Sales Exp, 1998-2007
Training History:
Shiny French Certificate
Jane
Job History:
Some programming, 2000-2003
Training History:
Crappy database certificate
Some courses in management
Comment dois-je fusionner les deux tableaux et comment dois-je concevoir la présentation pour obtenir le rapport dans l'exemple donné?
Mise à jour:
Comme vous le remarquerez peut-être, je n'essaie pas de le faire avec un seul élément sélectionné. J'ai deux sources de données en tant que source et je peux les fusionner manuellement pour obtenir une source de données unique. J'essaie d'utiliser le regroupement, mais j'ai besoin de deux types de groupes pour chaque employé. Un pour les emplois et un pour les formations. Comment utiliser la fonctionnalité de groupe ou de sous-rapport pour lier ce type de données (et comment dois-je traiter les données si nécessaire)?
La solution
Utiliser les sous-rapports ... Créez un rapport principal qui comportera deux sous-rapports. Un sous-rapport pour l'historique des tâches et un sous-rapport pour les antécédents de formation. Le rapport principal aura besoin d'une requête qui renverra une liste de personnes. Ensuite, pour chaque personne figurant dans le rapport principal, définissez un paramètre sur chacun des sous-rapports enfants qui affinera la requête dans ces deux requêtes afin de répertorier l'historique des tâches ou l'historique de formation de la seule personne actuellement affichée dans le rapport parent.
Une procédure détaillée expliquant comment procéder étape par étape se trouve sur le site Web de Data Dynamics ici . Certaines informations générales sont également ici
.Autres conseils
En général, vous ne pouvez pas le faire dans une seule instruction SELECT. La plupart des outils de reporting proposent une sorte de " sous-rapport " ou "sections intérieures" qui s'exécutent sur une question SQL différente et ont certains paramètres transmis du rapport principal. Vous pouvez utiliser deux sous-rapports et un rapport principal.
Vous devez sélectionner ces deux tables avec "quot-left-join", créer un " GroupHeader / Footer " section dans le rapport et définir " DataField " sur " GroupHeader " section à champ, à utiliser comme groupe.
Regardez les exemples d'ActiveReports, ils ont sûrement un échantillon à regrouper.