如何根据打印介质类型设置报告参数?

问题描述 投票:0回答:1

我需要根据生成报告的打印介质在SSRS报告中切换一些演示文稿。

我必须对一堆报告(SalesInvoice,SalesConfirm,SalesQuotation)进行此操作。

问题是我找不到可以同时访问这两项的访问点:

  • 在SalesInvoiceJournalPost类中,我可以访问打印介质,但不能访问SalesInvoiceContract
  • 在SalesInvoiceController类中,我可以访问SalesInvoiceContract,但是printsettings给我错误的值

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-2008 axapta dynamics-ax-2012
1个回答
0
投票

事实证明,只有几步分离,您才能从控制器获得SRSPrintDestinationSettings。这是SalesInvoiceController.outputReport

PrintMgmtPrintSettingDetail printSettingDetail;
SRSPrintDestinationSettings printDestinationSettings;

printSettingDetail = formLetterReport.getCurrentPrintSetting();
printDestinationSettings = printSettingDetail.parmPrintJobSettings();
salesInvoiceContract.paramMyValue(
    printDestinationSettings.printMediumType() == SRSPrintMediumType::Email
);
© www.soinside.com 2019 - 2024. All rights reserved.