首页 > 解决方案 > 如何根据打印介质类型设置报表参数?

问题描述

我需要根据生成报告的打印介质在我的 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
);

标签: ssrs-2008axaptadynamics-ax-2012

解决方案


事实证明,您毕竟可以从控制器获得 SRSPrintDestinationSettings,但需要几度的分离。这是SalesInvoiceController.outputReport

PrintMgmtPrintSettingDetail printSettingDetail;
SRSPrintDestinationSettings printDestinationSettings;

printSettingDetail = formLetterReport.getCurrentPrintSetting();
printDestinationSettings = printSettingDetail.parmPrintJobSettings();
salesInvoiceContract.paramMyValue(
    printDestinationSettings.printMediumType() == SRSPrintMediumType::Email
);

推荐阅读