Farseer

导航

AX2009 VS平台报表开发学习笔记(一)--初体验

从AX2009开始,AX的报表平台就移植到Vistual Studil平台通过Reporint Services来实现了,AX2009的Morphx报表平台也就宣告寿终正寝了。

直到AX2009发布一年多后的今天才开始学习这个报表开发平台,实在是懒得有些出奇了,边学边写点东西吧,年纪大了,记性不好了,边学边记录一下,随时翻阅比较好。

先从头到尾看了一遍MSDN中关于报表平台的教程,http://msdn.microsoft.com/en-US/library/cc653472.aspx, 对它有了个大概的认识,虽然MSDN只会告诉你怎么做,不会告诉你为什么,但是对于我这个新手来说,确实是必看的。

用AX的Morphx平台开发报表也有四年的时间了,虽然基本上是在混日子,但对这个报表平台还是有一点浅显的认识的,这两天粗略地看了一遍MSDN上关于新的报表平台的讲解,也有了个大体的感觉,这篇文章对这两者做个简单的比较。

<<Inside Dynamcis AX2009>>在解释为什么放弃Morphx报表平台的时候,主要从两个方面说的

1.要充分整合微软的Reporting Service产品,发挥它的长处

这点显而易见,谁也不想搞那么多产品线,既然Reporting Services要担负微软报表平台的重任,能把AX的报表平台整合到Reporting Services上最好不过了。

2.Morphx报表平台不能展现图表

Morphx最让人痛苦的事情莫过于对格式的控制,咱们中国人民不知道咋搞得,报表非要用各自框起来,最差也要加个下划线,唉,说实在的,用框子框起来,行多了眼睛都花了。不知道是不是为了遵循老祖宗的没有规矩不成方圆的古训,才如此坚持。有点跑题了,Morphx的报表平台没有内置的对图形展示数据的支持,只用数字的方式来展现公司的经营状况确实有些枯燥和缺乏生动。

其实这两点都是必要但非充分条件,唯一的充分条件是:微软说,我要改了,于是,我们也必须要改。

说一下我对这两个平台的看法:

1.平台的整合度

这一点看起来是废话,Morphx报表平台属于Morphx平台的一部分,当然整合度比Visual Studio平台要好得多,毕竟是天然亲生的,除非把Morphx平台彻底换成Visual Studio,否则比较整合度都是废话。

但是习惯了Morphx报表平台的coder初次使用Visual Studio的报表平台的确会有种想抓狂的感觉,本来在Morphx平台里是自然的事情,到了VS里就不能那么当然了。

VS访问AX必然要用到.NET Business Connector,虽然用Microsoft.Dynamics.FrameWork.Report对它进行了一层封装让它更便于写报表是调用,但是归根结底,它还是用CallStaticClassMethod之类去调用的,于是要麻烦你把类名和参数名搞对先,开发平台可不会提示你,你写错了编译器也不会告诉你,到了运行的时候才会给你个惊喜,从这点上来说,就让我这样的懒汉烦恼极了,在Morphx里把类名写错它还会告诉我,我还改正,这告诉我,搞得我只有到运行的时候才知道,哦,原来类名写错了,有些痛苦。

在Morphx平台里,很容易办到的一点,查询条件,我想有个下拉框提示,比如查看客户余额报表,过滤条件用客户代码,我只需要把EDT类型设成CustAccount就万事大吉了,想在下拉框里显示哪些内容也是非常容易设置的。到了VS2008里,就复杂太多了,要么你在AOT里创建一个Query,专门供报表的Parameter用,要么你写一个DataMethod返回DataTable做为Parameter的参数用。得,要是有十个八个的过滤参数,您要如此重复个十次八次的,下拉框里只能显示一个值,比如我既要显示客户代码又要显示名称就麻烦了,或者更多的我要显示客户地址邮编之类就更惨了(当然可以在DataMethod里把相关字段合并成一个,不过这怎么看怎么别扭),更要命的是,一旦绑定了数据源出现了下拉框,用户就不能直接输入值了(不知道是不是我没找到方法还是本来如此),如果我知道客户代码,直接输入就完事了,还非要我在一堆数据里找。

呵呵,这一条先写这么多吧,要不然成了对VS报表平台的牢骚贴了。

2.格式控制的灵活性

VS 平台这点还是要赞扬一下的,VS的报表平台里也有两种AutoDesign和PrecisionDesign两种,不知道是不是为了对应MorphX里的Auto和Generated。

Auto通过Template来控制报表的格式,大多数对格式要求不高的报表可以用这个来实现,AX里现在用VS报表平台开发的报表大部分都是用AutoDesign做的,不过为了应对中国报表,Precision Design可能会经常用到了,跟Morphx类似,Precision Design可以基于Auto生成,所以可以先用Auto把数据分组之类设置好,然后再生成Precision,进行格式的控制,控件的位置控制比Morphx来好多了,它可以基于表达式(用VB写)对每一个控件进行控制。虽然表达式用VB写起来有些别扭,但是表达式在VS的报表平台里至关重要,凡事想到表达式还是需要的。

另外VS报表平台可以做Matrix交叉报表,各种图表,以及OLAP的报表,这点是MorxphX难以望其项背的。

OK,先写这些。

 

 

posted on 2010-08-25 21:47  佛西亚  阅读(1650)  评论(0编辑  收藏  举报