If the report has a private data session then the items open in the data session that called the report are NOT visible to the report. If the report has its own data environment and it is not private then the tables and cursors in the report's data environemnt will be open in the then current data session when the report is called.
The way I do it is that I NEVER touch the report's data environment. I never put any tables or cursors in the report's data environemnt. I let the calling code wset up the data for the report.