Servoy / aggridcomponents

Advanced table components based on ag-Grid
MIT License
5 stars 10 forks source link

Feature request: basic grouping functions (sum,count,average,min,max) #5

Open abeermann opened 6 years ago

abeermann commented 6 years ago

Hello Everybody We tested the grouping grid with our key users and they all liked it very much!!! But... In our 'real' world we drill down over 3-4 grouping levels and still find several hundreds of records. (For example: SAP time feedback for bigger SAP projekts) Our users wanted the typical SQL group informations (sum(time), count(feedbacks) goup by... ) Then they would only open(drill down) nodes with large, small, unusual values. Most of the time they will be satisfied with the summary informations on node levels and will not look at singel records. So if it would be possible to mark some columns with wanted aggregation functions (sum or count) you could expand your group by querys with these funktions? And then we have a powerfull analysis tool :-) (and not a drill down that leads to 500 records with individual informations)

Best regards Albert

paronne commented 6 years ago

Hi Albert, support lazy-loading and aggregated values in the same grid component won't be possible, at least at the moment. We have in our roadmap a special web components which is more focused on aggregated value rather than infinite drilldown. The scope of the new component would be different, is indeed more focused on the aggregated values; potentially a drilldown could retrieve all sub-nodes at once instead of lazy loading sub-nodes. Such table component can be bound to a dataset, instead of a foundset, so the dataset can provide already pre-aggregated results. Do you think such component could fit your requirments ?

Regards, Paolo

abeermann commented 6 years ago

Hi Paronne I'm not quite sure wether lazy-loading and aggregation couldn't work together. Of course i don't know how the ag grid is working, but i'm thinking about something like this: I define 3 aggregation levels lets say : region, country, product For regions i configure count(orders) and count(countries) For countries i configure count(orders) and sum(ordervalue) For products i configure sum(amount) and sum(amount * price)

so showing all regions = select region,count(orders),count(countries) from xxxxx group by region = one query showing all regions with the wanted aggregations

clicking on region europe = select countries,count(orders) ,sum(ordervalue) from xxxx where region = europe group by countries = one query...

clicking on country germany = select products,sum(amount) ,sum(amount price) from xxxx where country = germany group by product = ... clicking on a product = select from xxxx where country = germany and product = ..... =showing the records = the first 200 = lazy loading:-)

This is the way, we did it in our foxpro programms, showing the result in a treeview- Not possible with servoy? Vergotten something?

Best regards Albert

gtlShivi commented 6 years ago

Creating a custom component similar to grouping table. Using Servoy's features can show a counter displaying records greater then 200. Need help regarding a method than can be implemented in custom component's serverJS file to show counter for displaying number of records available after grouping colums ? any suggestions

paronne commented 6 years ago

Hi Shivi,

the grouping table component is fully foundset based, taking advantage of all the nice feature a foundset provides out of the box, such as real-time broadcasting, lazy-loading and more. Also the grouped rows are foundset based and lazy-loaded to best serve perfomances. Therefore you don't have any info on the row count until you actually expand the specific row group, for this reasons is not trivial to include the row counts.

abeermann commented 6 years ago

Hello everybody

In my opion everything ends in querys, doesn‘t it? Nevertheless you show/load only 200 records!

Cities +Berlin +Hamburg +Amsterdam +London

To show these 4 groups cities you have to do select distinct city from customers or select city from customers group by city

If i could configure that i want count-infos for groups the query would be:

Select distinct city,count(distinct customers) as howmany from customers or select city,count(customers) as howmany from customers group by city Cities +Berlin(1023) +Hamburg(222) +Amsterdam(12) +London(112)

When you click on one city you have to fire the query fort he next level (select customer,count(orderid) from where …..

Mit freundlichen Grüßen Albert Beermann Informationsverarbeitung


Tel: +49 541 5841-868 Mobil: +49 177 9400868

Piepenbrock Service GmbH + Co. KG Osnabrück


Von: Paolo [mailto:notifications@github.com] Gesendet: Montag, 9. Juli 2018 15:22 An: Servoy/aggridcomponents Cc: Beermann, Albert; Author Betreff: Re: [Servoy/aggridcomponents] Feature request: basic grouping functions (sum,count,average,min,max) (#5)

Hi Shivi,

the grouping table component is fully foundset based, taking advantage of all the nice feature a foundset provides out of the box, such as real-time broadcasting, lazy-loading and more. Also the grouped rows are foundset based and lazy-loaded to best serve perfomances. Therefore you don't have any info on the row count until you actually expand the specific row group, for this reasons is not trivial to include the row counts.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/Servoy/aggridcomponents/issues/5#issuecomment-403476522, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AgADwImquA4qOjDvMZcFktfDNyPwxU3Qks5uE1kGgaJpZM4QZ_Vh.

paronne commented 6 years ago

Hi Albert,

as said above this component is fully foundset based taking advantage of all the great features a foundset provides; all data shown in the grid are indeed given back by foundsets (lazy-loaded) therefore is not trivial to add a custom aggregate into it; please note that also the group rows

+Berlin +Hamburg +Amsterdam +London

are bound to a foundset and not to a custom query.

Soon we will release a second version of the aggridcomponents, together with it there will be a new grid component dataset based. In the dataset based component you can be in control of the query and customize the result set. You will also be able to decide if lazy loading will be enabled or not for the dataset version of the dataset grid.

Regards, Paolo