当前位置: 首页 > news >正文

[AX]AX2012 SSRS报表Drill through action

SSRS报表显示的字段可以添加两种Drill through action,一是Report Drill Through Action,这要用到两个报表,一个顶级报表的某个字段添加drill through操作,另一个报表在top report中点击drill through的时候呈现出来以显示一下额外的信息。

上图显示的是在顶级报表的Name字段下新建了一个report dirll through action,通过子报表的参数SelectedAssertId传递所选择纪录的信息。

上图则是子报表,在子报表中根据传入的参数SelectedAssertId对数据做了过滤,总体上讲这种Drill through还是比较简单的。

 

另外一种Drill through称为URL Drill Through Action,其实现方法是在drill action中返回一个表达式指向的URL,要动态的实现URL,可以使用report data method,比如系统自带的HcmAbsenceSetup报表:

DrillWorkder是一个report data method,是这样定义的:

    [DataMethod(), PermissionSet(SecurityAction.Assert, Name = "FullTrust")]
    public static string DrillWorker(string reportContext, string personnelNumber)
    {
        return DrillThroughCommonHelper.ToHcmWorker(reportContext, personnelNumber);
    }

这里用到了DrillThroughCommonHelper帮助类,由它生成相关动作的链接,包含在SRSDrillThroughCommon工程中,内部用到了DrillthroughHelper类,在命名空间Microsoft.Dynamics.AX.Application.Reports下,这个类提供方法来生成到AX MenuItem的链接,比如这样用:

[DataMethod(), PermissionSet(SecurityAction.Assert, Name = "FullTrust")]
    public static string DrillThroughLinkToRoom(string reportContext, object fieldValue)
    {
        string tableName = "FCMRooms";
        Dictionary<string, object> fields = new Dictionary<string, object>();
        fields.Add("RecId", fieldValue);

        if (RuntimeReportContext.IsClientContext(reportContext))
        {
            // The report is being run from the Microsoft Dynamics AX client.
            return DrillthroughHelper.GenerateLinkToAXMenuItem(reportContext, "FCMRoomsForm", MenuItemType.Display, tableName, fields);
        }
        else
        {
            // The report is being run from Enterprise Portal.
            return DrillthroughHelper.GenerateLinkToAXMenuItem(reportContext, "RoomDetails", MenuItemType.WebMenuItemTypeUrl, tableName, fields);
        }

更多内容详见http://msdn.microsoft.com/EN-US/library/hh533446

 

相关文章:

  • Android写日志文件类
  • 尚能饭否
  • 第九章 第一小节:打印机共享优先级
  • Linux下使用https访问站点
  • vSphere 5.0 新功能中文版说明
  • eclipse开启和去掉代码上面的快速导航栏(Toggle Breadcrumb)的方法
  • 获取矢量图层的属性值
  • wxWidgets利用tinyxml实现xml解析
  • 关于JAVA的常见误解
  • 乱起八糟用linux之快速查看进程pid
  • JS文件UTF-8格式的问题
  • 使用php mongodb扩展时比较需要注意的事项
  • [转载] 山楂树之恋——07-09
  • 计算硬盘分区使用的大小
  • as3 键盘事件多键同时按下
  • $translatePartialLoader加载失败及解决方式
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • android图片蒙层
  • Apache的基本使用
  • Docker容器管理
  • gcc介绍及安装
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Javascripit类型转换比较那点事儿,双等号(==)
  • js作用域和this的理解
  • python docx文档转html页面
  • React Native移动开发实战-3-实现页面间的数据传递
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Vue学习第二天
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 排序算法学习笔记
  • 七牛云假注销小指南
  • 设计模式(12)迭代器模式(讲解+应用)
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 新书推荐|Windows黑客编程技术详解
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 再次简单明了总结flex布局,一看就懂...
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • # 数据结构
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (04)odoo视图操作
  • (solr系列:一)使用tomcat部署solr服务
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十三)Flask之特殊装饰器详解
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)EOS中账户、钱包和密钥的关系
  • (转)创业家杂志:UCWEB天使第一步
  • .bat批处理出现中文乱码的情况
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008