Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Report Control
  New Posts New Posts RSS Feed - Once again: Grouping in virtual mode
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Once again: Grouping in virtual mode

 Post Reply Post Reply
Author
Message
mgampi View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14 July 2003
Status: Offline
Points: 991
Post Options Post Options   Thanks (0) Thanks(0)   Quote mgampi Quote  Post ReplyReply Direct Link To This Post Topic: Once again: Grouping in virtual mode
    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 15.3.1, new Projects v 17.2
Platform: Windows 8.1 (64bit)
Language: VC++ 2015 Upd3
Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 10 February 2009 at 6:47pm
I like to know how you use virtual mode in real app? Load data - Store data?
(VirtualList old demo - pure formal).
Back to Top
mgampi View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14 July 2003
Status: Offline
Points: 991
Post Options Post Options   Thanks (0) Thanks(0)   Quote mgampi Quote  Post ReplyReply Direct Link To This Post Posted: 11 February 2009 at 4:44am
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 15.3.1, new Projects v 17.2
Platform: Windows 8.1 (64bit)
Language: VC++ 2015 Upd3
Back to Top
alexshemesh View Drop Down
Groupie
Groupie


Joined: 22 February 2009
Status: Offline
Points: 17
Post Options Post Options   Thanks (0) Thanks(0)   Quote alexshemesh Quote  Post ReplyReply Direct Link To This Post Posted: 02 March 2009 at 10:08am
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

Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 03 March 2009 at 12:50pm
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
Back to Top
Aaron View Drop Down
Senior Member
Senior Member
Avatar

Joined: 29 January 2008
Status: Offline
Points: 2187
Post Options Post Options   Thanks (0) Thanks(0)   Quote Aaron Quote  Post ReplyReply Direct Link To This Post Posted: 05 March 2009 at 2:44am
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....
Back to Top
Source View Drop Down
Senior Member
Senior Member


Joined: 19 June 2006
Status: Offline
Points: 103
Post Options Post Options   Thanks (0) Thanks(0)   Quote Source Quote  Post ReplyReply Direct Link To This Post Posted: 05 March 2009 at 6:42am
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
Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 06 March 2009 at 8:32pm
I hope so
Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 27 May 2009 at 1:04am
Check this: Grouping in virtual mode
http://www.codeproject.com/KB/vista/listviewundoc.aspx
Back to Top
mgampi View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14 July 2003
Status: Offline
Points: 991
Post Options Post Options   Thanks (0) Thanks(0)   Quote mgampi Quote  Post ReplyReply Direct Link To This Post Posted: 27 May 2009 at 3:45am
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 15.3.1, new Projects v 17.2
Platform: Windows 8.1 (64bit)
Language: VC++ 2015 Upd3
Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 27 May 2009 at 3:14pm
But you can use the concept of virtual grouping with data taken by demand - ReportControl is not a ListView!
Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 24 July 2009 at 7:17pm
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.
Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 26 July 2009 at 12:16am
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
Back to Top
mgampi View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14 July 2003
Status: Offline
Points: 991
Post Options Post Options   Thanks (0) Thanks(0)   Quote mgampi Quote  Post ReplyReply Direct Link To This Post Posted: 27 July 2009 at 4:29am
Originally posted by mdoubson mdoubson wrote:

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.

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 15.3.1, new Projects v 17.2
Platform: Windows 8.1 (64bit)
Language: VC++ 2015 Upd3
Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 27 July 2009 at 6:58am

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?
Back to Top
mgampi View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14 July 2003
Status: Offline
Points: 991
Post Options Post Options   Thanks (0) Thanks(0)   Quote mgampi Quote  Post ReplyReply Direct Link To This Post Posted: 27 July 2009 at 7:01am
Hi;

I'll try to create an example with a few screenshots of our current application...
Martin

Product: Xtreme Toolkit v 15.3.1, new Projects v 17.2
Platform: Windows 8.1 (64bit)
Language: VC++ 2015 Upd3
Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 27 July 2009 at 7:25am
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
Back to Top
alexshemesh View Drop Down
Groupie
Groupie


Joined: 22 February 2009
Status: Offline
Points: 17
Post Options Post Options   Thanks (0) Thanks(0)   Quote alexshemesh Quote  Post ReplyReply Direct Link To This Post Posted: 13 August 2009 at 8:08am
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.



Back to Top
mdoubson View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 November 2008
Status: Offline
Points: 1705
Post Options Post Options   Thanks (0) Thanks(0)   Quote mdoubson Quote  Post ReplyReply Direct Link To This Post Posted: 13 August 2009 at 8:13am
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
Back to Top
mgampi View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14 July 2003
Status: Offline
Points: 991
Post Options Post Options   Thanks (0) Thanks(0)   Quote mgampi Quote  Post ReplyReply Direct Link To This Post Posted: 12 October 2017 at 1:45am
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 15.3.1, new Projects v 17.2
Platform: Windows 8.1 (64bit)
Language: VC++ 2015 Upd3
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down



This page was generated in 0.094 seconds.