Regarding point 3 where you want a report to show a specific rolling period of time. Look at including in your REPORT some form objects (on a ‘helpers page’ perhaps) and then use normal ‘behaviour’ actions to define a date field to be the beginning of your ‘period’.
This date field can then be utilised within a Set Filter behaviour on the form set to this date field and defining the appropriate Operator to then show you the data from that date from your datasource
For instance.. if you wanted to show ‘current week’ where Sunday is the ‘start’ date, identify the ‘current day’ using the function Weekday Number to then use that value in another behaviour such that the most recent Sunday date is written into a date input object.
Then in your ‘set filter’ use the operator ‘greater’ to this field and then the resultant data from that datasource will show you the data since Sunday.