ssrs-2008 - 如何根据打印介质类型设置报表参数?
问题描述
我需要根据生成报告的打印介质在我的 SSRS 报告中切换一些演示文稿。
我必须为一堆报告(SalesInvoice、SalesConfirm、SalesQuotation)执行此操作。
问题是我找不到可以访问这两个东西的访问点:
- 在 SalesInvoiceJournalPost 类中,我可以访问 printmedium,但不能访问 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
);
解决方案
事实证明,您毕竟可以从控制器获得 SRSPrintDestinationSettings,但需要几度的分离。这是SalesInvoiceController.outputReport
:
PrintMgmtPrintSettingDetail printSettingDetail;
SRSPrintDestinationSettings printDestinationSettings;
printSettingDetail = formLetterReport.getCurrentPrintSetting();
printDestinationSettings = printSettingDetail.parmPrintJobSettings();
salesInvoiceContract.paramMyValue(
printDestinationSettings.printMediumType() == SRSPrintMediumType::Email
);
推荐阅读
- kotlin - Kotlin kapt 参数一个键的多个值
- php - 从php中的api单独打印多维数组
- java - 无法将edittext中的值转换为字符串
- sql - SimpleCart、SQL 和 MVC
- asp.net - 尝试使用 asp.net web api 2 将图像上传到服务器时访问被拒绝
- android - EditText 的文本不可见
- java - 如何在集群模式的 spark submit 中找到当前的暂存目录?
- javascript - 带引号的javascript字符串到int - Highcharts
- android-fusedlocation - FusedLocationApi 已被交叉或弃用
- tree - 在 common lisp 中查找树中的项目