听说过rdlc有一段时间了,但一直都没有使用过,此前项目中使用过的报表主要是Crystal Report 以及 Active Report,这次遇到同事需要我帮他改一下一个报表,于是就接触了下。

     原来同事只说帮他改一下排版问题,因为画的太大了,A3纸无法打印,可后来才发现,原本画好的报表问题还是很多的。首先,报表没有页眉页脚,只在主体上放了一张表格,由于第一次用rdlc,刚开始也没在意这一点,但是报表运行一看,不行。于是在报表上加了页眉页脚,报表名称及表头放入页眉中,表尾放入页脚,有一个问题,页眉页脚中是不允许放表格的,只好放了文本框,设置文本框的边框,调整文本框的宽度,以便与主体中表格各列对齐,不是很方便,但总算是初步完成了。其次,发现原来rdlc的表头和表尾中是不能直接放入绑定字段的,这个不是很方便,需要在主体中放置绑定字段,然后在报表页眉中引用,为什么非要多出这么一步呢,不明白。最后,这个报表的数据源来自两个DataSet,在主体中放入一个DataSet的字段后,再拖入另一个DataSet的字段,后一个的表达式就带着First,这个字段正好是页眉中引用的一个查询日期字段,运行后发现报表第一页有日期,第二页却没有,由于对rdlc不是很熟悉,没能一下找到解决办法,后来终于在属性中找到,打勾“在每一页上重复带有数据区域的报表项”,并在数据区域中选择table,确定,运行后,终于OK。

     第一次用rdlc,还是觉得有些不习惯,还是更习惯于使用ActiveReport。

posted @ 2008-07-22 20:36 jsriping 阅读(55) | 评论 (0)编辑
首先需要安装PI-ODBC,配置相应连接PI数据库的数据源,完了可找到安装目录下PIPC\ODBC文件夹下ipisql.exe,这是类似sql查询分析器的一个小工具,双击打开后,会自动连接默认的PI数据库连接,成功后可尝试写几句sql语句执行查看结果,成功即可。(PI数据库的sql语法与SQL Server或Oracle的稍有不同,可查看相关的帮助文档,一看便知。)

接着,第二步,在.net项目中,需要引用 Microsoft.Data.Odbc.dll ,用于访问ODBC数据源。接下去的代码编写与访问一般的ODBC数据源没有什么区别。要说有什么不一样,就是注意sql语句的写法,上面已经说过了,可查阅相关帮助文档。检查sql语句的有效性和正确性则可用ipisql.exe,这个小工具还是很有用的。

虽然通过PI-ODBC访问PI数据库的速度相对较慢,但实际应用的效果还算可以。
posted @ 2008-05-27 12:40 jsriping 阅读(22) | 评论 (1)编辑