This demo allows the user of each front end of a db to set their reports to a printer of their choosing;
Report types (configurations) are determined in the database design, however the user can then define which printer, page size, paper orientation etc for each report type.
The demonstration provides
1. A single report
2. 2 report configurations (further can be added by the developer)
3. commands to preview, print or e-mail (via MS outlook) reports. (nb Outlook should preferably be already open if e-mailing) either report configuration
4. e-mailed reports in rtf or pdf format
5. Preview Report or Preview mode
6. Margins adjustment
7. User defined paper sizes
8. Selection of printer paper bin
9. Monochrome printing
NB table 'tblPrntDflts' must be in the database Front End
the source tables for the report (tblCountres and tblRegions) are shown in the front end for the demonstration but would normally reside in the Back End database.
The printer selection is taken from the list of available printers on the local PC
To use this in your db simply:
1. Copy Table "tblPrntDflts", Module "ModSendToPrinter" and form "frmPrtSetup" to the Front End of your database.
2. In the form "frmPrtSetup" either hide the footer or delete the footer controls and associated code
3. Replace your existing open report commands
DoCmd.OpenReport "ReportName", ViewMode, , strCriteria, openArgs
With
PrintSelectPrinter "Reportname", ViewMode, ReportTypeID, strCriteria, OpenArgs
Where ReportTypeID is the ID of the report type to be used for the report taken from the table "tblPrntDflts"
Any comments or suggestions gratefully received.
Enjoy...
Edits:
Version 2 Corrected error in e-mail attachment type
Version 3 Added Paper Size selection based on printer device capabilities API (A2003 and A2007 available)
Version 4 Added Paper Bin selection based on printer device capabilities API, and monochrome printing option
Version 5 Corrects error (Thanks to Daniel Pineault for pointing this out) Default printer automatically replaces a non valid printer, or if no printer is selected.