Tijdens onze Reporting Services trainingen krijg ik nog wel eens vragen over een tweetal grouping opties: de Parent Group property en Details Grouping. Van de property wist ik wel wat hij deed maar ik had het nooit geprobeerd en van Details Grouping ontging mij, zeker met mijn Crystal Reports achtergrond waar deze feature ook niet in zit, het praktisch nut een beetje.
Parent Group property
De Parent Group property is voor de Crystal Reports kenners hetzelfde als wat daar Hierarchical Grouping heet, oftewel recursief groeperen en een mogelijk ongebalanceerde hierarchie maken op basis van twee velden in je dataset. Een praktisch voorbeeld zit in de AdventureWorks Employee tabel waar iedere medewerker een ID heeft die die medewerker uniek identificeert en een manager ID die aangeeft wie zijn/haar baas is. Die manager ID is een key naar de tabel zelf, naar het medewerker record van de manager. Door te groeperen op medewerker ID en als parent group de manager ID op te geven, krijg je in Reporting Services een dynamische, mogelijk niet gebalanceerde boom die overeenkomt met het organogram in de Employee tabel. Books Online bevat een eenvoudige tutorial over deze property onder SQL Server Reporting Services | Designing and Creating Reports | Working with Report Designer | Working with Data in a Report Layout | Grouping Data in a Report.
Details Grouping
Wat is het praktisch nut van Details Grouping wanneer we ook 'gewoon' kunnen groeperen? Eerst voor iedereen die dat niet weet: wat doet Details Grouping eigenlijk? Het groepeert de gegevens uit de dataset in een rapport op het allerlaagste, detail niveau. Hierdoor blijven niet alle details over, maar bevat het rapport op het laagste niveau al aggregaties. Het antwoord op de oorspronkelijke vraag over het nut van deze feature is dat je ook prima zonder zou kunnen. Immers, je kunt ook in je dataset al groeperen; of 'gewoon' groeperen en het detail niveau niet zichtbaar maken. Details Grouping is dus niet meer dan een handigheidje die iets meer flexibiliteit bevat dan groeperen in de dataset, bijv. wanneer je het groeperen dynamisch, parameter gestuurd maakt.