We have a situation where we also run some reports regularly, whether that is daily or weekly. Here's how we got around the problem (using CE 9):
In our case, our reports run off of stored procedures. We designed the stored procedures to expect a start and end date as parameters (you could probably use a single "Run Date").
Within the stored procedure, we add logic to see if either date has been provided, or is it has been set to NULL.
If the dates have been set to NULL, then there is logic within the stored procedure to figure out the "previous week" or "previous day", and it will set it's own start and end dates.
Then, in crystal, you just schedule the report to run at the interval you wish, but tell it to run with NULL dates (since you don't want to have to change the date every time). Whenever it runs, the stored proc will figure out the date range you need.
It just takes some planning and organization to make sure you know when the report will run, and then work backwards into the stored procedure to figure out the dates it should choose.
For example, our weekly report must gather data from Sunday at midnight till the following Saturday at 23:59:59. Our first business rule is that the report can not be run in an automated fashion (with the NULL dates passed in) for the current week--it will only ever select data for the most recent fully completed week as specified above. This allows us to run the report any day of the current week--it will figure out what the previous Saturday 23:59:59 date is, work backwards to the Sunday midnight date, then use those dates to select the data. All of our "automated" scheduled instances are set with NULL dates.
Business rule #2 is that is someone wants data from the current week, they simply need to request that report "ad-hoc", and specify their own start and end dates. The stored proc works just the same, but since the user provides dates, it will use whatever dates they have asked for.
Hope that helps!