Dynamics AX 2012 R2 从代码中调用SSRS Report

    平时,我们制作SSRS Report的方法主要有两种:使用Query或RDP。如果需要为报表传递参数,就要在代码中为报表参数赋值,然后在代码中调用报表。下面我总结下这两种报表在代码中传参和调用的方式:

1、使用Query作为报表数据源

1.1、Dynamic Filters属性

    在VS中,需要注意Report DataSourceDynamic Filters属性。

1.1.1、如果Dynamic Filters属性为True的话,会在Report Parameter中生成一个叫做DS_DynamicParameter的参数。

Screenshot20150115171132

    并在Report Preview时,生成一个Select Button,用于配置Report Parameter

Screenshot20150115171743

1.1.2、如果Dynamic Filters属性为False的话,会将AOT Query Range中的参数,一个一个添加到Report Parameter中。比如我的AOT Query Range中有4Parameter,那么在Report Parameter中就自动添加四个相应的参数:

Screenshot20150115170919

并在Report Preview时,生成4TextBox,用于输入Report Parameter

Screenshot20150115171918

1.2、如何在X++ 代码中调用这种类型的报表

    Reinhard这里将前面的Dynamic Filters属性为False。然后在代码中这样写:

SrsReportRunController controller;
controller=new SrsReportRunController();
controller.parmReportName(ssrsReportStr(YourSSRSReportName,YourReportDesignsName));
if(controller.parmReportContract().parmRdlContract())
{
    controller.parmReportContract().parmRdlContract().setValue('DS_PersonnelNumber','PersonnelNumber0101');
}
controller.parmDialogCaption('DialogCaption');
controller.startOperation();

2、RDP Report

    如果使用RDP报表,也将之前提到的Dynamic Filters属性设为False。然后在代码中这样写:

SrsReportRunController controller;
YourReportDataContract contract;
controller=new SrsReportRunController();
controller.parmReportName(ssrsReportStr(YourSSRSReportName, YourReportDesignsName));
contract=controller.parmReportContract().parmRdpContract() as YourReportDataContract;
contract.YourParameter('YourParameterValue010101101');
controller.parmDialogCaption('DialogCaption');
controller.startOperation();

 

转载于:https://www.cnblogs.com/msdynax/p/call-ssrs-report-in-code.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值