TAdvStringGrid / Cross-Tab component

Create a non-visual component working with TAdvStringGrid that can be linked to a dataset and show data as a crosstab/Pivot-Table in the grid.
One could select one or more fields to show in vertical order in fixed cols. For the header-row there should be date/time/number options (like ctDay, ctWeek, ctMonth, ctQuarter, ctYear, ctNumber, etc.) or eventually in future custom header-cells hooked-up to an event..
There should be simple aggregate functions like sum(), min(), max(), avg(),...