Hi Jim,
Does the user need to preview the pdf report?
If not, you could just generate it on the Send button click.
OR better still, call a webservice from the send button click which then goes away and does the stuff (generate pdf, send email), and allows the user to carry on.
OR a little more excitement, you could call the webservice but instead of generating the pdf just include a special custom link in the email (tailored for the person the email is sent to) that allows them to click and download the pdf report from their device.
Lots of good stuff comes out of that (tracking, understanding, streamlining process).
But if they need to see the report on the netwebform, then those things won't solve that problem.
It's a bit of a hack, but you could:
1. On the memory form remove the cancel button and change the save to a "Close".
2. Add a "Send" button to the form, hide it based on a session value (say sendreport:Okay).
3. On opening form, set to zero, p_web.SSV('sendreport:Okay',0).
4. When the report is generated, set to 1, p_web.SSV('sendreport:Okay',1).
5. Make sure you are refreshing the custom "Send" button after report is generated.
6. Send button should then be readonly/hidden (whichever you choose in the template) until the pdf is generated.
Hope that helps.