You asked in a comment in another question if this could be done with HarePoint Workflow Scheduler. Yes, you could do that. There are several possible approaches. Off the top of my head:
Create a list called vStorage with a multi line plain text field and an "EmailSent" column as a Yes/No field. This list has only one item. Let's say the only item's ID is 1. This list item will be used as intermediate storage while the workflow runs through its steps.
Set up the workflow like this:
- change an item in the vStorage list where ID = 1. Append the current list item title to the vStorage item text field. Set the "EmailSent" field in vStorage to No.
- set the Report Sent column of the current item to Yes
Use HarePoint Workflow Scheduler to run on the report items with a filter set to show only items with "Report sent" set to No.
Create another workflow on the vStorage list.
If "EmailSent" = No send an email and include the text field that now contains all the items from the report list. Then set the "EmailSent" field to Yes.
Use HarePoint Workflow Scheduler to run on the vStorage list with a view or query that contains just the one item.
Make sure to schedule the two workflows so they don't overlap.