找回密码
 立即注册

QQ登录

只需一步,快速开始

mfc198666

中级会员

9

主题

42

帖子

919

积分

中级会员

积分
919

活字格认证

mfc198666
中级会员   /  发表于:2012-2-6 14:58  /   查看:7781  /  回复:6
是这样的ActiveReports我才开始研究,因为有个这样的需求:用户做完报表后可以自行修改。
那么着就用到了 EndUserDesigner 。

我的做法就是用 EndUserDesigner 来编辑 同时保存 xxxxx.rpx 和 xxxxx.rdf,xxxxx.rpx用来做模板,xxxxx.rdf可以直接在程序加载

好了我的问题是 EndUserDesigner 他做完后保存的 xxxxx.rpx 为什么必须记录连接数据库地址语句?这样非常局限性!

请问 有没有什么办法解决



如果xxxxx.rpx模板制作时不写连接语句,程序加载时设置不了xxxxx.rdf的连接地址啊? 求大虾们帮帮忙,给个解决方法

6 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-6 16:21:00
沙发

回复 1# mfc198666 的帖子

mfc198666 你好:

rpx根据数据源的不同可以显示不同的数据,而rdf文件是一个静态文件没有数据源的概念,也就是说rpx是一个报表模板,而rdf是根据这个模板生成的一个实际的报表。比如数据源中有A和B两条记录,第一次运行报表使用的是A记录,此时将报表保存为rdf文件,那么每次打开rdf都只是显示A记录。所以,rpx文件中就会存在链接字符串。
回复 使用道具 举报
mfc198666
中级会员   /  发表于:2012-2-7 09:48:00
板凳
谢谢,看来是我的理解不对。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-7 10:05:00
地板
不知道你现在使用的是什么版本,ActiveReports 6 现在有中文版,如果需要可以从这里下载:http://gcdn.grapecity.com/showtopic-2856.html
回复 使用道具 举报
mfc198666
中级会员   /  发表于:2012-2-7 10:32:00
5#
不好意思我还有一个问题。

Designer des = new Designer();
des.Report.LoadLayout(AppDomain.CurrentDomain.BaseDirectory + "rep.rpx");

我现在想修改 des  的数据源,用代码如何修改??

DataTable dt = new DataTable();
.....
不是des.Report.DataSource = dt;

而是在生成保存成 xxx.rpx 文件后里面  有
<DataSources>
    <OleDbDataSource ConnectF="WRtLJoMB0GGOVYi5NYSzSdLflCMN6Wg5qXrfnt/fokV3wAhstaIz9UqiPD0rWUXfdvz9BBcbRA5T1Ds4Oz2mqYb/R2bZdCn257R6+EL87FXqhT5EA2SAgJuTdYWBMf5BuGTXXNqBmvh72AnTmHQh7Q==" SQL="Select * from Sys_Users" />
</DataSources>

就是说原来的 xxx.rpx 是没有的
回复 使用道具 举报
mfc198666
中级会员   /  发表于:2012-2-7 11:04:00
6#
我自己解决了。谢谢您的帮助
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-7 13:32:00
7#
解决就好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部