Wednesday, March 17, 2010

How to get rid of the report scaling message the lazy way

When a report doesn't fit on a page, depending on it's properties Ax will resize the report. This is a powerful and very useful feature.
Now Ax will inform you that the report has been rescaled (Report is scaled xx percent to fit to page) and this message is generally not well received by users.




Users are annoyed by the message, they get it every time they run the report, they cannot do anything about it, they have to click to close the infolog, ...

Ax has a builtin feature to suppress this scaling message. You can modify the init method of your report, and add something like this:


this.printJobSettings().suppressScalingMessage(true);


This is very effective and will do the job.
Only, this requires you to modify every report with these kind of messages.


A nicer way would be if we could switch it off in one place for all reports. Fortunately, this is possible as well.

Go to class SysReportRun, in the Run method, place following code before the call to super:

if(this.printJobSettings())
this.printJobSettings().suppressScalingMessage(true);



Now we don't have to modify each and every report and our users are happy.

Note that you can still override the settings in your report. In some reports this is done by default, like SalesInvoice and SalesConfirm.

3 comments:

  1. Hi

    I have been using this method from time to time and today I added the code into the LedgerJournal report. For some reason I still got the same message. So i tried to add the code in SysReportRun, but still get this message. Any idea?

    ReplyDelete
  2. Found it:
    this.printJobSettings().clientPrintJobSettings().suppressScalingMessage(true);

    did the trick...

    ReplyDelete
  3. Maybe remember to do "compile forward" on the class too.

    ReplyDelete