Smooth vertical scrolling |
Post Reply |
Author | ||
YMHiK
Groupie Joined: 21 January 2009 Location: United States Status: Offline Points: 14 |
Post Options
Thanks(0)
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 |
Post Options
Thanks(0)
|
|
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 |
Post Options
Thanks(0)
|
|
I asked about this feature too... :(
|
||
Algae
Senior Member Joined: 08 January 2007 Location: United States Status: Offline Points: 217 |
Post Options
Thanks(1)
|
|
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 |
Post Options
Thanks(0)
|
|
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 |
Post Options
Thanks(0)
|
|
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 |
Post Options
Thanks(0)
|
|
Algae, have you tried wndReport.GetPaintManager()->SetFixedRowHeight(TRUE) ?
|
||
Algae
Senior Member Joined: 08 January 2007 Location: United States Status: Offline Points: 217 |
Post Options
Thanks(0)
|
|
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 |
Post Options
Thanks(0)
|
|
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 |
Post Options
Thanks(0)
|
|
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 |
Post Options
Thanks(0)
|
|
"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 Options
Thanks(0)
|
|
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 |