This is a reposting of an article I originally wrote on my Developing for Dynamics GP blog.
Microsoft Dynamics GP 2013 added a long awaited feature, the ability to change the printer selection for a report after it has printed to the screen output.
However, this change has introduced some side effects. Microsoft is aware of the side effects and they should be resolved in an upcoming release.
To explain the side effects we need to look at how the system worked before GP 2013 and then look at the changes made.
Before Microsoft Dynamics GP 2013
Before GP 2013, the printer for a report was already set once the screen output window was open and changing it via File >> Print Setup after printing to screen but before printing to printer would have no effect.
The behaviour for selecting the printer and settings for Microsoft Dynamics GP 2010 and before was as follows:
The destination printer would be selected at the time the Dexterity run report command is executed.
The printer would either be the application default printer (which is based on the Windows default printer at the time the application is launched, but can be changed via File >> Print Setup), or it would be based on the Named Printer for that report (if Named Printers is setup and a printer is specified for the report).
If the report definition has a default page orientation (portrait or landscape), this will also be updated into the printer settings.
Then when printing to the printer, the user would be presented with the System Print Dialog (unless it has been disabled).
Many customers disable this dialog as they never changed any settings anyway and so it was just an extra click for no reason. Disabling the dialog could be achieved with the Dex.ini setting NoPrintDialogs=TRUE. You could also use the Named Printer Options window (Tools >> Setup >> System >> Named Printers, then click on the Machine ID hyperlink) and tick the “Do Not Display System Print Dialog” checkbox (see below).
If the System Print Dialog is disabled, the report is printed to the printer immediately without requiring an extra mouse click.
Microsoft Dynamics GP 2013 (RTM and SP1)
With GP 2013, all the above behaviour still occurs, but the updated System Print Dialog now offers the ability to change the printer and settings as well.
Whether the System Print Dialog is displayed still depends on the Dex.ini setting NoPrintDialogs.
So, now we come to why I wrote this article.
If you print and the Microsoft Dynamics GP 2013 System Print Dialog is displayed, any settings from Named Printers and the page orientation settings from the report definition will be ignored. If you just click OK, the current application default printer and its settings will be used to print the report.
The problem is that the window opens with the application default printer selected, rather than the Named Printer and settings selected.
Until this issue is fixed, the feature to Select a printer when printing cannot be used in conjunction with Named Printers functionality.
The Workaround Solution
Disabling the System Print Dialog and so disabling the ability to change the printer and/or settings just prior to printing the report will allow Named Printers and the page orientation settings to work as expected. But changing the NoPrintDialogs Dex.ini setting has become a little more complex with Microsoft Dynamics GP 2013.
GP 2013 introduces System Level and User Level Dex.ini settings and unless specifically coded to look at the System Level, Dexterity will look first at the User Level Dex.ini and then (if the setting is not found) at the System Level Dex.ini.
What this means is that just manually adding NoPrintDialogs=TRUE to the System Level Dex.ini file will not stop the System Print Dialog from being displayed if the User Level Dex.ini contains NoPrintDialogs=FALSE.
To change the User Level Dex.ini, you will need to use one of the following methods:
Use the Named Printers Options window for each user manually.
Use the Dex.ini Configuration window of the Support Debugging Tool to roll down the setting to the User Level Dex.ini.
Manually modify the syUserDexIniSettings (SY01405) table in the system database. Make sure the users are logged out before updating the table otherwise any changes made will be overwritten when the user exits Dynamics.
Once the System Print Dialog has been disabled, Named Printers and page orientation settings will work.
This issue is logged as Problem Report 68382 and is currently scheduled for GP 2013 Service Pack 2. If you are facing this issue please log a support case referencing the problem report number to get your details logged in the system. This case would be non-chargeable as it is linked to a bug. Also, the higher the customer count, the higher the priority the bug will be assigned.
04-Oct-2013: Just a confirmation that this issue has been resolved in Microsoft Dynamics GP 2013 Service Pack 2, see post Microsoft Dynamics GP 2013 Service Pack 2 fixes Named Printers and Page Orientation settings not being honoured.
12-Nov-2013: While Service Pack 2 does fix some issues, there are still some other related issues with settings not being honoured. This is Problem Report 72319 and is scheduled to be fixed in GP 2013 R2 (SP3)
This article was originally posted on the Developing for Dynamics GP Blog and has been reposted on http://www.winthropdc.com/blog.