• AX2009 VS平台报表开发学习笔记(二)数据源


    可能是为了让习惯了Morphx报表平台的coder平滑地过度到新的平台,AX2009 VS的开发平台跟Morphx的开发平台外观类似,如下图所示:

    从上图可以看出,报表的节点跟Morphx报表平台大同小异,各个节点的功能也差不多,本文简单描述一下Datasets和Data Methods节点,因为Data Methods节点里的方法可以返回DataTable做为报表的数据源。

    报表无非就是把数据按照一定的顺序和逻辑从数据库的表里取出来,所以数据源是基础了。

    1.Query

    用过Morphx平台的coder都知道,在Morphx平台里,最重要的数据来源是Query,Query是数据表的组织形式,可以把几个表连接起来为报表提供数据源。在VS的报表平台里也可以直接使用AX里的Query做为数据源

    DataSourceType选择Query,就可以从AOT里定义的Query中选择某个Query作为数据源了。

    2.Data Method

    在Morphx里,对于比较复杂的报表,不能直接从数据表里抓取数据时,会在fetch方法里经过一系列的计算得到值,把值写到临时表里,在报表中显示。或者通过display method计算得到值。

    这两种做法在VS平台中也有相应的解决方法,可以在Data Methods节点下定义方法,返回DataTable,这类似于Morphx里临时表的做法,返回某个类型的值,就有些像display method方法了。

    返回DataTable的例子

    [DataMethod(), AxSessionPermission(SecurityAction.Assert)]
        
    public static DataTable dmDayMonth()
        {
            
    return FIMCommonHelper.GetAXEnum(FIMAxEnumNames.dayMonth);
        }

    如果返回值是DataTable,那么就可以在DataSets节点下添加该方法做为数据源了。

    上面是DataTable的例子

    如果Query里的数据基本可以满足报表要求,只是个别值需要计算,那就不需要用DataTable了,毕竟构造DataTable结构,加那些column也够折腾人的,实现Morphx里的display方法也很简单,同样在Data Methods节点下增加一个方法,返回某个值,在Design的Data节点中增加一个Field,将Field的Expression,选择DataMethod即可。

    OK,先记录这么多,详细内容见MSDN。

  • 相关阅读:
    Java 反射
    类中静态/普通/构造初始化顺序
    计算机世界中的0和1
    Java并发练习
    HashMap底层
    HashMap 与 Hashtable 的区别
    为什么重写了equals() 就要重写hashcode()
    干货型up主
    JSP页面元素
    重定向与请求转发的区别
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/1809582.html
Copyright © 2020-2023  润新知