In My case, I need to invoke custom sales proforma report without modifying the standard setup.
So i have done my changes in SalesInvoiceController as per the requirement.
[ExtensionOf(classStr(SalesInvoiceController))]
final class SalesInvoiceController_Extension
{
public SRSCatalogItemName parmReportName(SRSCatalogItemName _reportNamee)
{
Args reportArgs = this.parmArgs();
SRSCatalogItemName reportName = next parmReportName(_reportNamee);
if (reportArgs.menuItemName() == menuItemOutputStr(SalesInvoice))
{ reportName = ssrsReportStr(ASalesInvoice, HSReport);
}
return reportName;
}
public PrintMgmtPrintSettingDetail LoadPrintJobSettings()
{
PrintMgmtPrintSettingDetail printSettingDetail = new PrintMgmtPrintSettingDetail();
PrintMgmtReportFormat printMgmtReportFormat;
printSettingDetail.parmReportFormatName(ssrsReportStr(ASalesInvoice, HSReport));
printSettingDetail.parmType(PrintMgmtDocInstanceType::Original);
printSettingDetail.parmInstanceName(enum2str(PrintMgmtDocInstanceType::Original));
printSettingDetail.parmNumberOfCopies(1);
printSettingDetail.parmSSRS(PrintMgmtSSRS::SSRS);
printSettingDetail.parmPrintJobSettings(formLetterReport.parmReportRun().parmDefaultOriginalPrintJobSettings()); printSettingDetail.parmPrintJobSettings().printMediumType(SRSPrintMediumType::Screen); return printSettingDetail;
}
protected PrintMgmtPrintSettingDetail printSettingDetail()
{
Args reportArgs = this.parmArgs();
PrintMgmtPrintSettingDetail settingDetail = next printSettingDetail();
if (reportArgs.menuItemName() == menuItemOutputStr(SalesInvoice))
{
settingDetail = this.LoadPrintJobSettings();
}
return settingDetail;
}
}