Thread ID:

Created:

Updated:

Platform:

Replies:

I'm using a GridGroupingControl (Essential Studio 4.4.0.51) in a VB.NET application to monitor a process where the user selects rows with items that will generate PDF files (one for each item) via the .Export command from Crystal Reports' ReportDocument class. Then, as long as the PDF generating process goes for each row, a status column is updated and the related row is unselected.

I have many rows (above 7000), which are grouped in some very differently sized groups (some have only one item, one of them has above 2000). Each item, also, is a grid group, with its subgroup being rows showing the log entries for each time a PDF file was generated for that item.

Everything goes fine during most of the time (specially when in my development environment). But in some tests, in an unexpected way, without nothing special happening (at least, not that we can see), some item row, when updated (and unselected), shows the text "Ex" with a red background where the "+" sign for that item should be. I deal with errors using a Try...Catch, so it continues but, after that, I start having errors for every row (it happens exactly in the .Export command that creates the PDF file). And, from then on, every row has the same problem (the red "Ex").

Can anyone help me somehow? I know there's a Crystal Reports issue mixed, but it seems that it only starts to happen after the strange GridGroupingControl behaviour that brings that red "Ex". I've done some research about the Crystal Reports error message that comes repeatedly and I haven't found any connection with what occurs with me.

I attached an image showing how this event looks like, though I had to edit the image because it's really hard to reproduce it in my development machine (but it occurred a couple of times already in production). There it's also possible to see the structure I mentioned above.

Any help ignoring the whole Crystal reports stuff and just indicating me what can cause the red "Ex" thing would be greatly appreciated.

Well, I've been investigating this problem a little further and I have some new informations that might be of some help:

1 - I started to monitor the amount of memory used by the application and noticed that, at each iteration of the loop where the exception occurs, it increases - even if I use garbage collection (when it just happens in a slower fashion). The most of this increase happens after I change the value of a cell in the GGC, unselect that row and then set that row as the current one. The memory keeps increasing and, in some moment, the exception (that mentions "Memory full" and "Not enough memory for operation") shows up;

2 - I made a test setting the GGC as invisible during the process (and kept all the operations made on it, like changing cell values, setting as current etc.); not only the amount of memory stopped to increase, but also the exception itself stopped to happen!

So it makes me think that it is somehow related to the rendering/updating of the GGC, and to a related use of memory. Any tip on how to deal with it, and maybe decrease the amount of memory spent on it?