I am not sure how many of you will have use for this info, but I have one customer who ran into an unknown limitation in the Crystal Reports API (.NET). He was using FindItEZ to track changes in a very large and complex report. The report had one section divided into over 400 subsections and certain subsections weren’t being identified correctly. Instead they were repeating as “phantom” duplicates. So the team at FindItEZ did some testing and Ken Gnazdowsky reported what they considered a bug in the .NET API.
But, after some discussions with SAP they were told that the .NET API can only keep track of 104 subsections in any one of the 7 major sections:
Report Header/Report Footer
Page Header/Page Footer
So if you go past 104 in any one section (past subsection label ‘cz’) then the Crystal.net API loses the ability to specifically identify those additional subsections. This is confirmed true up to version 13.0.6 and seems to be by design. The API team at SAP must have decided that 4 times through the alphabet would provide enough section ‘handles’ for any report being manipulated through the API.
This limitation doesn’t cause a problem when running the reports. The report that generated the issue has always run fine. The problem only comes up when trying to search or set section properties through code, or through a tool like FindItEZ that uses SAP’s .NET API to read or write to the RPT files. Version 5.0 of FindItEZ will check for reports that exceed the API limits. The software will then warn the user and skip that RPT file since search and replace results would be unpredictable. (See below, these updates have been made both by SAP and FindItEZ.)
In these same discussions, SAP also mentioned that there was a similar API limit that affects subreports beyond 40. You can read this forum thread for more details.
And thanks to John Raleigh of Brightwork Solutions for being willing to share his experience.
Update 4/8/15. Due to Ken G’s persistence, SAP has mad some changes in CR v13 SP13 and increased these limits to:
- 120 Subreport Max
- 120 Group Headers Max
- 120 Group Footer Max
- All other area’s limited to 6000
And in the latest versions FindItEZ now doesn’t skip these files, but instead logs a warning and searches up to the limit within such documents.