Farseer

导航

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。

posted on 2010-08-26 22:59  佛西亚  阅读(1360)  评论(1编辑  收藏  举报