Once again: Grouping in virtual mode |
Post Reply |
Author | |
mgampi
Senior Member Joined: 14 July 2003 Status: Offline Points: 1201 |
Post Options
Thanks(0)
Posted: 09 February 2009 at 5:07pm |
Hello Codejock team members;
do you have any plans to implement grouping in virtual mode? Despite using custom heap in our case, memory usage of the report control with more than 200000 records is over 1GB! I tested the same resultset with virtual mode and it requires about 40 MB! Since we also require grouping of these records, we can't use the virtual mode at the moment. |
|
Martin Product: Xtreme Toolkit v 22.1.0, new Projects v 24.0.0 Platform: Windows 10 v 22H2 (64bit) Language: VC++ 2022 |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
I like to know how you use virtual mode in real app? Load data - Store data?
(VirtualList old demo - pure formal).
|
|
mgampi
Senior Member Joined: 14 July 2003 Status: Offline Points: 1201 |
Post Options
Thanks(0)
|
Hi;
I'm using the report control in readonly mode only! The data is collected by services connected to PLCs to determine failures and breakdowns. So a huge amount of data is collected all over the day/month/year. This data must be presented to the user to assist in increasing productivity of facilities of any kind. Data is loaded from databases and then presented in the report control. The only possibility to input data is via header rows to apply filter conditions to the loaded rows. The users normally select time ranges of about one day to one week. In this case we do not have any performance and/or memory issues. But in the beginning of the new year customers often choose time ranges for several month - most of the time years - resulting in several 100000 records to be analyzed. In this case the report control can only be used in virtual mode (see initial post), but this disables necessary grouping functions. I hope this describes my necessity of grouping in virtual mode. At the moment I try to implement something thats best described as 'semi virtual mode' using GetItemMetrics of the report record class to provide string informations (long strings with more then 80 chars and a high degree of repetitions) on demand. But I have to implement filtering/searching by myself and I still have to allocate storage for all the report records... |
|
Martin Product: Xtreme Toolkit v 22.1.0, new Projects v 24.0.0 Platform: Windows 10 v 22H2 (64bit) Language: VC++ 2022 |
|
alexshemesh
Groupie Joined: 22 February 2009 Status: Offline Points: 17 |
Post Options
Thanks(0)
|
they never answer second question
do they? I have similar problem, im using report control to display information about events from CCTV video server. Single video server can produce up to 1000 events per day, and it can store up to 30 days history.Application must support up to 5000 video severs.So in worst case we are talking about millions of rows.I can limit user enthusiasm , but its absolutely necessary to have ability to work with report control that has ~50000 rows (user can choose to investigate last day events from 50 video systems). And i would like to have grouping functionality while im working with it. So i have to use Virtual mode, and i would like to have grouping functionality in it. I can release first version withouth grouping but i have to know if this functionality will ever be developed, so i can add it later. Thanks |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
Hi, I read you requirements and sure that virtual mode will be good for you. I will implement grouping and filtering for next release 13.1. I will prioritize this task
|
|
Aaron
Senior Member Joined: 29 January 2008 Status: Offline Points: 2192 |
Post Options
Thanks(0)
|
Hi,
This is first time I reply in MFC forum (I'm a VB user) I saw this post and I had to reply
First time I tried sample of RC in VirtualMode I though: this is a great control. Millions of records just in a split second and be able to do some tricks in BeforeDrawRow event (if you have a computer with decent processor, this won't be a problem).
So I wanted to have more then just ordinary showing data (in my case I'm talking about 30.000 events per day) So this isn't an option to, let's say a month, collect data and load it (as records) into RC. So VirtualMode would be my thingy hehehe. I'm able to filter and sort data, but I got stuck on grouping (I believe this could be done, but because my knowledge of SQL in databases does not reach that far, so I had to give up) I tried in ActiveX/COM forum, but no reply at all...
So, Mark is going to implement grouping in RC, that is wonderfull news and I hope he will also implement this in ActiveX of course. I'm curious though, how Mark is going to handle this... Does this mean he is going to use DataBinding for this? Or does it mean we have to fill an array ourselves, after all we have to have some kind of data that would be used in BeforeDrawRow event. Well, I will keep an eye on this post and see what happens. Maybe you guys have more luck
Thanks
|
|
Product: Xtreme SuitePro (ActiveX) version 15.0.2
Platform: Windows XP (32bit) - SP 2 Language: Visual Basic 6.0 Zero replies is not an option.... |
|
Source
Senior Member Joined: 19 June 2006 Status: Offline Points: 103 |
Post Options
Thanks(0)
|
A "little bee" told me that only in MAY (this year I hope) is the month for this feature to come in the horizon
|
|
Product: Xtreme SuitePro (ActiveX) version 13.1.0
Platform: Windows XP (32bit) - SP 3 Language: Visual Basic 6.0 |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
I hope so
|
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
Check this: Grouping in virtual mode
http://www.codeproject.com/KB/vista/listviewundoc.aspx |
|
mgampi
Senior Member Joined: 14 July 2003 Status: Offline Points: 1201 |
Post Options
Thanks(0)
|
Hi;
Since most of our customers still/only use XP, this is not an option for us... Also undocumented stuff is too much risk to take. |
|
Martin Product: Xtreme Toolkit v 22.1.0, new Projects v 24.0.0 Platform: Windows 10 v 22H2 (64bit) Language: VC++ 2022 |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
But you can use the concept of virtual grouping with data taken by demand - ReportControl is not a ListView!
|
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
Current version of https://forum.codejock.com/uploads/DemoVersion/EditVirtualListIconStatic.rar demonstrate filtering and find feature
For your video events storage it is very near turn-key implemenation - I can give you a source if you wish
I also have similar VB project - VB can implement same features.
|
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
You (alexshemesh, Aaron,...) all talking about grouping in billion records model without any details what is your group suppose to do (show) - give me some example e.g. in video events model. We don't need to restrict ourself to use one report control for complicated model - let's use at least two - one for group set (simple structure - no items), one - for details (childs of selected group) - here we can use all power of virtual mode.
Such app will work very fast and also can be very flexible as you can dynamically change group part (use another order or set).
Aaron can also learn SQL and find interesting syntax:
SELECT DISTINCT field_name... FROM table_name;
Using it you can load in top report running in RealMode (non-Virtual one) reasonable amount of different records from table where you get only columns presented in group-box. Now selection on any top report row will clean bottom report control (runing in Virtual Mode) and load it with detailed record matched top report row values
|
|
mgampi
Senior Member Joined: 14 July 2003 Status: Offline Points: 1201 |
Post Options
Thanks(0)
|
Hi; I tried grouping, but I can't figure out how this works. I'm able to move a distinct column header to the group section but nothing really happens. Is this not finished yet? |
|
Martin Product: Xtreme Toolkit v 22.1.0, new Projects v 24.0.0 Platform: Windows 10 v 22H2 (64bit) Language: VC++ 2022 |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
I asked you about logic behind grouping - what do you want to group and how? Simple case for group all records with propM.value = smth looks strange - how it used in business logic?
Why equal? What else can be groupping criteria?
|
|
mgampi
Senior Member Joined: 14 July 2003 Status: Offline Points: 1201 |
Post Options
Thanks(0)
|
Hi;
I'll try to create an example with a few screenshots of our current application... |
|
Martin Product: Xtreme Toolkit v 22.1.0, new Projects v 24.0.0 Platform: Windows 10 v 22H2 (64bit) Language: VC++ 2022 |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
You can play with this sample - https://forum.codejock.com/uploads/DemoVersion/EditRealAndVirtualListIconStatic.rar
It have 2 RC - top - real mode, bottom - virtual mode. Try to resize top report columns, change order, drop to groupbox and back and see bottom RC reaction
You can turn Bottom RC Header On and Off using menu - Report - Show Bottom RC Header
|
|
alexshemesh
Groupie Joined: 22 February 2009 Status: Offline Points: 17 |
Post Options
Thanks(0)
|
Hi
Event is characterized by 4 fields Server from which event came Sensor that produced event (sensor belongs to server) Type of event( fire alarm , motion detection etc) Time of Event(when event happened) It will be very useful to group by server , sensor, type of event This way operator can see what happened , where and when. In other case operator may want to see all event of certain type sorted by time. Lets imagine scenario in which some criminal breaks into office building and still laptop or something. To analyze such dramatic incident operator need ability to manipulate events data by sorting and grouping it. First he will probably want to see all motion detection events sorted by time from all servers guarding the building, so he groups list by server and sorts it by time. Then he understands that incident happened in zones covered by servers A and B .So he groups events by server and event type and collapses all server groups except for A and B, and all event type groups except motion detection. After some analysis of situation he finds out that criminal entered building because door was left open. so he drops all groupings, groups events by sensor, finds out sensor that catches everybody who opens the door, and checks who was last person leaving building. Off course such functionality can be achieved using sorting, but grouping looks much cooler. I downloaded EditRealAndVirtualListIconStatic , frankly i don't understand how it works. I have 13.1 version of Extreme Suit , and grouping in virtual mode was not mentioned in release notes. Was it implemented? Thanks. |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
No grouping in virtual mode. Sample demonstrate sync between 2 report controls. You can use one as your group presentation - second as details view loaded by selection in first control
|
|
mgampi
Senior Member Joined: 14 July 2003 Status: Offline Points: 1201 |
Post Options
Thanks(0)
|
Hi;
I once again 7 years later ask the same question: WHEN WILL THE REPORT CONTROL SUPPORT GROUPING AND SORTING IN VIRTUAL MODE? Codejock guys - please comment this! |
|
Martin Product: Xtreme Toolkit v 22.1.0, new Projects v 24.0.0 Platform: Windows 10 v 22H2 (64bit) Language: VC++ 2022 |
|
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |