Jim,
Hilmar is sending you in the right direction. The key to understanding this is to separate the report into two distinctly different processes;
1) Gather the data and organize it (order it and format it)
2) Present the data (Report form)
When you think of it this way you can begin to work outside the box. I NEVER use the report's Data environment because it is too limiting. My reports are always called from code that first prepares the data. In this code I can use SQL SELECT, Index, format, modify, or anything else I might like to do to the data before the report is called.