>I know how to tell if printed from print preview....
>
>How can I tell if Cancel was clicked on the print dialog?
Pretty much the same way. You can have a function called from your topmost band which will set a property or a variable somewhere to .t. if the report was run. If it wasn't, it won't ever run.
If your report has a dataenvironment (not recommended by a few here, me included), you can add such code there.