My customers has grown tired by the filename 'Axapta report' in class Info -> method reportsend().
I need to change the filename to the name of the caller. But how do I find the caller in class Info -> Method reportsend() ?
Let's see if it works this time.... (it's only the SIXTH time that I try to post this answer :( )
There seems to be no way to get a reference to the ReportRun object; the method PrintJobSettings.ReportRun always seems to return null in reportSendMail.
You could set a property of PrintJobSettings in your report and use that to fill the filename.
Another possible solution (no guarantees) is the following:
Add the following to infolog.reportSendMail:
And to the method SysReportRun.print add the next code (before calling super).
========
Let's see if it works this time.... (it's only the SIXTH time that I try to post this answer :( )
There seems to be no way to get a reference to the ReportRun object; the method PrintJobSettings.ReportRun always seems to return null in reportSendMail.
You could set a property of PrintJobSettings in your report and use that to fill the filename.
Another possible solution (no guarantees) is the following:
Add the following to infolog.reportSendMail:
And to the method SysReportRun.print add the next code (before calling super).
I need to change the filename to the name of the caller. But how do I find the caller in class Info -> Method reportsend() ?
Let's see if it works this time.... (it's only the SIXTH time that I try to post this answer :( )
There seems to be no way to get a reference to the ReportRun object; the method PrintJobSettings.ReportRun always seems to return null in reportSendMail.
You could set a property of PrintJobSettings in your report and use that to fill the filename.
Another possible solution (no guarantees) is the following:
Add the following to infolog.reportSendMail:
if (globalCache.isSet(curuserid(),classidget(p1))) { fileName = globalCache.get(curuserid(),classidget(p1)); globalCache.remove(curuserid(),classidget(p1)); }
And to the method SysReportRun.print add the next code (before calling super).
SysGlobalCache globalCache = infolog.globalCache(); ; if (this.printJobSettings().getTarget() == PrintMedium::Mail) { globalCache.set(curuserid(),classidget(this.printJobSettings()),this.title()); }
========
Let's see if it works this time.... (it's only the SIXTH time that I try to post this answer :( )
There seems to be no way to get a reference to the ReportRun object; the method PrintJobSettings.ReportRun always seems to return null in reportSendMail.
You could set a property of PrintJobSettings in your report and use that to fill the filename.
Another possible solution (no guarantees) is the following:
Add the following to infolog.reportSendMail:
if (globalCache.isSet(curuserid(),classidget(p1))) { fileName = globalCache.get(curuserid(),classidget(p1)); globalCache.remove(curuserid(),classidget(p1)); }
And to the method SysReportRun.print add the next code (before calling super).
SysGlobalCache globalCache = infolog.globalCache(); ; if (this.printJobSettings().getTarget() == PrintMedium::Mail) { globalCache.set(curuserid(),classidget(this.printJobSettings()),this.title()); }