Here's another debugging trick I use for some of the tough things.
In some of the methods of the DE, such as Init and Open Tables, I put some code like the following:
STRTOFILE('Init method' + CHR(13), 'Mytest.txt', 1)
Then in the OnEntry and OnExit expressions of some of the bands, you can do something similar like this:
EXECSCRIPT(STRTOFILE('PageHeader OnEntry' + CHR(13), 'Mytest.txt', 1))
This will build a text file with a bunch of stuff so you can follow what happened.
Cathy