well, my standard answer would be to create a stored proc and get the main report's data from that. In the stored poc you could truncate the table without any issues.
While, I suppose it is possible to have CR modify data on the database, 1) I have never tried it, because 2) I think that the basic design of CR is to read data not modify.
I understand the need to fill a table with data so that one can access it...
In thinking about it, you could probably have the stored proc do nothing else but truncate the table and return something, say true, this way CR 'thinks' it is returning data, and then you could have your report continue operating as it does now...
I guess you could do the truncation in a command object, but i would be leery of that I don't in which order CR executes commands, in which case your report would/could be wrong and it would be very hard to debug.
If you delete the table, then you must have code that creates it again...
Since all my reports drive off of stored procs, that is the path that I would try first, but that is me.
HTH