我需要根据生成报告的打印介质在SSRS报告中切换一些演示文稿。
我必须对一堆报告(SalesInvoice,SalesConfirm,SalesQuotation)进行此操作。
问题是我找不到可以同时访问这两项的访问点:
在SalesInvoiceJournalPost.init
中,我尝试:
printSettings = SysOperationHelper::base64Decode(chainFormletterContract.parmPrintersettingsFormletter());
printDestinationSettings = new SRSPrintDestinationSettings(printSettings);
if (printDestinationSettings.printMediumType() == SRSPrintMediumType::Email)
{
// Can't access Report Parameter from here
}
在SalesInvoiceController.main
中,我尝试:
printDestination = formLetterController.parmReportContract().parmPrintSettings();
salesInvoiceContract = formLetterController.parmReportContract().parmRdpContract() as SalesInvoiceContract;
salesInvoiceContract.paramMyValue(
// this is always false because printMedium is always Screen
printDestination.printMediumType() == SRSPrintMediumType::Email
);
事实证明,只有几步分离,您才能从控制器获得SRSPrintDestinationSettings。这是SalesInvoiceController.outputReport
:
PrintMgmtPrintSettingDetail printSettingDetail;
SRSPrintDestinationSettings printDestinationSettings;
printSettingDetail = formLetterReport.getCurrentPrintSetting();
printDestinationSettings = printSettingDetail.parmPrintJobSettings();
salesInvoiceContract.paramMyValue(
printDestinationSettings.printMediumType() == SRSPrintMediumType::Email
);