![]() |
Smooth vertical scrolling |
Post Reply ![]() |
Author | ||
YMHiK ![]() Groupie ![]() ![]() Joined: 21 January 2009 Location: United States Status: Offline Points: 14 |
![]() ![]() ![]() ![]() ![]() Posted: 16 February 2009 at 5:41pm |
|
Is there any way to enable smooth vertical scrolling for Report Control?
This may be dumb question, but currently I'm running into issue with report record being bigger in dimension than report control. And from what I've seen report control displays only top portion of record. |
||
![]() |
||
Michl ![]() Senior Member ![]() Joined: 14 September 2007 Status: Offline Points: 138 |
![]() ![]() ![]() ![]() ![]() |
|
Welcome to the club...
![]() (https://forum.codejock.com/forum_posts.asp?TID=8862&KW=) |
||
![]() |
||
zitz ![]() Senior Member ![]() Joined: 05 October 2008 Status: Offline Points: 112 |
![]() ![]() ![]() ![]() ![]() |
|
I asked about this feature too... :(
![]() ![]() ![]() |
||
![]() |
||
Algae ![]() Senior Member ![]() ![]() Joined: 08 January 2007 Location: United States Status: Offline Points: 217 |
![]() ![]() ![]() ![]() ![]() |
|
Any hope of improving the performance of Report Control "Vertical Smooth Scrolling"?
I set: wndReport.SetScrollMode(xtpReportOrientationAll,xtpReportScrollModeSmooth); My program became unstable/unusable (time out crash on populate) with a large dataset. I believe the problem has existed for a decade or so. ![]() It would be nice to have a smooth vertical scroll since a column that exceeds the view area becomes inaccessible to the end user. This can be a pretty dramatic failure when the program runs in a dialog frame window or on a tiny tablet type computer. Thanks for listening. I hope that the feature can be made usable. |
||
![]() |
||
olebed ![]() Admin Group ![]() Joined: 01 July 2014 Location: Ukraine Status: Offline Points: 841 |
![]() ![]() ![]() ![]() ![]() |
|
Hello Algae,
What version of ToolkitPro do you use? Also write ActiveX or C++ version ? Regards, Oleksandr Lebed |
||
![]() |
||
Algae ![]() Senior Member ![]() ![]() Joined: 08 January 2007 Location: United States Status: Offline Points: 217 |
![]() ![]() ![]() ![]() ![]() |
|
Hi Oleksandr,
Using: Version 16.26 with the exception of XTPTreebase.cpp from 15.3.1 since there were too many problems with later revisions. I've also tried versions 16.3.1 and 16.4. Static build. C++. Visual Studio 2010. Honestly, I can see why it's slow. The source appears to do lots and lots of required rect computations. The more records there are the slower it gets. I did not try virtual mode since it doesn't support the "grouping" feature which I require. |
||
![]() |
||
olebed ![]() Admin Group ![]() Joined: 01 July 2014 Location: Ukraine Status: Offline Points: 841 |
![]() ![]() ![]() ![]() ![]() |
|
Algae, have you tried wndReport.GetPaintManager()->SetFixedRowHeight(TRUE) ?
|
||
![]() |
||
Algae ![]() Senior Member ![]() ![]() Joined: 08 January 2007 Location: United States Status: Offline Points: 217 |
![]() ![]() ![]() ![]() ![]() |
|
Sorry, no. I have not tried FixedRowHeight.
The row heights have to be variable for my purpose since record item content may vary widely from one record to another. For instance a "Note" item might consist of 1 line of text or > 20. |
||
![]() |
||
olebed ![]() Admin Group ![]() Joined: 01 July 2014 Location: Ukraine Status: Offline Points: 841 |
![]() ![]() ![]() ![]() ![]() |
|
Hi Algae,
Do you use wndReport.m_bFreeHeightMode = TRUE ? (Sorry, I'm not having enough time to explore performance of Report Control now. But I remember about it and sometimes I can notice some things.) |
||
![]() |
||
Algae ![]() Senior Member ![]() ![]() Joined: 08 January 2007 Location: United States Status: Offline Points: 217 |
![]() ![]() ![]() ![]() ![]() |
|
Hello olebed,
Thank you for looking at this. I know you folks must be very busy working on new release. Ordinarily I do not use wndReport.m_bFreeHeightMode = TRUE. I use the default of FALSE. I tested it briefly. It produced report control line items that did not adjust line height to the cell content properly. Word wrap failed to work. It proved unsuitable. I'm not clear on what free height mode actually means though. CJ help says "Flag to set RC Free Height Mode" ![]() If the rows are fixed height, I can see how scroll performance would be improved since the bottleneck seems to be in refactoring row heights. |
||
![]() |
||
olebed ![]() Admin Group ![]() Joined: 01 July 2014 Location: Ukraine Status: Offline Points: 841 |
![]() ![]() ![]() ![]() ![]() |
|
"Free Height Mode" means that you can set height of rows to any value. And of course this will prevent to recalculation height of rows in redrawing.
Scrolling -> redraws Report -> recalcs height of rows ->calls GetRowHeightEx() CXTPReportPaintManager::GetRowHeightEx() just return pRow->m_nFreeHeight in free height mode. In other case method recalc height. Yes, you need to properly calculate height of every record, but once. To do this you can use algorithm from CXTPReportControl::GetRowsHeight() method.
|
||
![]() |
||
olebed ![]() Admin Group ![]() Joined: 01 July 2014 Location: Ukraine Status: Offline Points: 841 |
![]() ![]() ![]() ![]() ![]() |
|
![]() |
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 |