in reply to looking for better solution

Your description seems to go completely against the "best practice" of separating the "data storage/management" from the "business logic" and the UI.

It is not at all clear from your code where you are obtaining and storing the data, and what is being passed to what.

That said, If I were to design this app/DB, I would display a form asking for quantities ordered, store that quantity , and date requested into a database table , then use a separate program to email or print the invoice (This program would read from the Database - no structure should get passed, perhaps some simple scalars for customer number, date, or possibly an invoice number (for possible re-printing,e-mail). Such a request could/should also be made via a database record, so that a record of request completion can be kept.

     "As you get older three things happen. The first is your memory goes, and I can't remember the other two... " - Sir Norman Wisdom