[水晶报表]创建不受数据库限制的报表(1)

一般使用水晶报表进行报表开发时,都要先指定数据库连接。
但是如果我们从事三层开发时,一般是不允许水晶报表直接访问数据库的,而是通过你的数据库处理层返回数据给水晶报表
其实我们可以使用水晶报表中的字段定义作为数据来源,来彻底摆脱与数据库的直接联系,
从而开发出便于发布以及摆脱数据库限制的报表系统。

当然使用该字段定义的方式进行报表的开发,比使用水晶报表直接连接数据库操作来说
增加了一些开发的过程,但是我想相对来说,还是值得的。

在第一部分中,我来讲解该类模板的制作,这部分很简单的。我实际操作并抓图示例,相信大家一看就明白。





使用字段定义功能在水晶报表中是使用一个单独的dll实现的,水晶报表默认安装时没有这个组件。
所以可能需要重新补充安装一下,进行定制安装增加该功能组件。




如果字段设置完毕,点击右上角的叉,将这个文件保存。


保存完毕后,就可以参考原来与数据库连接一样的方式来制作报表模板了


做好的报表模板如下


其实这个字段定义文件很简单,打开看看

其中的间隔是一个TAB制表位,等熟悉了以后可以自己用文本工具做这个文件就可以了。

在下一节中我用VB做一个完整的程序来给进行演示。

posted on 2005-03-11 14:41 阿泰 阅读(4351) 评论(25)  编辑 收藏 所属分类: CR我的原创

Feedback

#1楼 219.239.16.* 2005-05-11 10:32 cosmoboy
刚接触Crystal Report,请问阿T,CR是否支持xml数据源?我查看了数据集中没有发现.
另外在Java 环境中是否容易集成?

谢谢!
  回复  引用  查看    

#2楼 [楼主] 2005-05-11 11:18 阿泰
目前不支持直接读取xml文件数据
但是可以使用其他方式实现
VS6
1:使用字段定义方式(ttx)文件,将xml数据转换为Recordset数据
VS2002/2003
2:使用Ado.net方式(xsd),将xml数据转换为Dataset
水晶报表有For JBuilder的专用版本,可以轻松集成
不过可惜我对Java没有了解,也就没有实际作过。
  回复  引用  查看    

#3楼 219.239.16.* 2005-05-12 14:34 cosmoboy
我查看了一些资料,感觉水晶报表对Java的支持确实不是很好.可惜用户要用(产品...),只有想办法集成了.
谢谢 阿泰

  回复  引用  查看    

#4楼 218.19.5.* 2005-05-23 23:16 Cryout
为什么我的crystal report中在"仅字段定义"这一步看不到"创建文件"这个按钮???????????????
  回复  引用  查看    

#5楼 [楼主] 2005-05-24 14:11 阿泰
字段定义的报表在水晶报表默认安装时是不可用的,需要重新安装一下水晶报表,最好选完全安装,而不是默认的安装方式
  回复  引用  查看    

#6楼 218.16.75.* 2005-06-24 16:07 huadj
阿泰,我做过几次用ttx定义的,但在报表中都无法显示,是不是跟我的数据库有关(Access)?反复查过,ttx里的字段跟数据库是一一对应的,而且名称也一样。为什么会这样啊?
  回复  引用  查看    

#7楼 [楼主] 2005-06-24 16:19 阿泰
是所有的字段不显示还是部分字段不显示?
可能原因:
传入字段值比ttx设计时的长度大
传入字段类型与ttx类型不一样,如date/datetime,这是不一样的
  回复  引用  查看    

#8楼 218.16.75.* 2005-06-24 16:37 huadj
对,是所有都不显示
  回复  引用  查看    

#9楼 219.130.43.* 2005-06-25 17:23 huadj
阿泰,ttx要不要跟数据库相连呢?如果不是,ttx从哪里获得数据呢?
  回复  引用  查看    

#10楼 222.67.11.* 2005-06-26 00:08 阿泰
ttx本来就不需要直接与数据库相连,至于数据的获取请仔细看一下这个文章里带的代码例子,在本文的第2部分里
  回复  引用  查看    

#11楼 61.49.108.* 2005-08-10 15:39 likai [未注册用户]
怎么不支持中文字段名,垃圾。
  回复  引用  查看    

#12楼 [楼主] 2005-08-10 17:15 阿泰
如果你只有前面几个字的话我还可以回答你一下,
不过既然你不尊重我,我也没必要为你耗费我的时间。
  回复  引用  查看    

#13楼 61.145.210.* 2005-09-01 11:41 阿强 [未注册用户]
你好!
我想用Dataset做水晶报表的数据源,以便能动态改变报表的数据,但发现无法报表并不随Dataset里的数据而更新。大致代码如下。请高人指点一下。。。谢谢!

this.crystalReportViewer1.Name = "crystalReportViewer1";


OleDbConnection nwindConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;" +
"Integrated Security=SSPI;Initial Catalog=chinaccm");

OleDbCommand selectCMD = new OleDbCommand("SELECT * FROM price where productid = 1", nwindConn);
selectCMD.CommandTimeout = 30;

OleDbDataAdapter custDA = new OleDbDataAdapter();
custDA.SelectCommand = selectCMD;

DataSet custDS = new DataSet();

custDA.Fill(custDS, "price");




ReportDocument report = new ReportDocument();
report.Load(@"E:"study"other"davidReport"Reportchinaccm.rpt");
report.SetDataSource(custDS.Tables[0] );

this.crystalReportViewer1.ReportSource = report;
crystalReportViewer1.RefreshReport();
  回复  引用  查看    

#14楼 [楼主] 2005-09-05 23:31 阿泰

#15楼 218.19.131.* 2005-12-13 18:43 360度 [未注册用户]
为什么中文字段名会显示成乱码,真晕!

楼主你要帮帮我, 我是个初学者!

  回复  引用  查看    

#16楼 218.19.131.* 2005-12-13 18:43 360度 [未注册用户]
可以回复到我邮箱吗?
junmaster@gmail.com
  回复  引用  查看    

#17楼 61.184.255.* 2006-07-31 19:07 吴争容 [未注册用户]
请问一下你用的是水晶报表几呀?
我的怎么没有 仅字段定义这个选项呀,我的是水晶报表10
  回复  引用  查看    

#18楼 60.12.92.* 2006-09-07 13:52 xingzi [未注册用户]
阿泰 我在 运行环境里 运行 TTX的报表就出错 会不会是版本问题呀!!
  回复  引用  查看    

#19楼 60.12.92.* 2006-09-07 13:54 xingzi [未注册用户]
对了 我用的是JAVA哦!不过好象差不多的
  回复  引用  查看    

#20楼 60.12.92.* 2006-09-07 14:00 xingzi [未注册用户]
对了 我的报错是连接数据源错误  看到了请帮忙快点回答 好吗/?急!!
  回复  引用  查看    

#21楼 222.82.106.* 2006-09-08 22:11 battleax [未注册用户]
阿泰,ttx不支持中文怎么处理呢
  回复  引用  查看    

#22楼 221.218.198.* 2006-09-19 09:17 苗苗[匿名] [未注册用户]
为什么我打开创建新连接的时候没有出现仅字段定义这一项呢?谢谢
  回复  引用  查看    

#23楼 211.141.78.* 2006-11-22 07:54 小李 [未注册用户]
ttx中的中文字段名,在rpt中显示为乱码,要如何解决呢。盼解决,谢谢,
E-mail:libo@jydrilling.com
  回复  引用  查看    

#24楼 60.190.255.* 2006-12-12 15:24 小徐 [未注册用户]
我也遇到,ttx中的中文字段名,在rpt中显示为乱码的问题,不知道该怎么解决。laoer_zj@sina.com.cn
  回复  引用  查看    

#25楼 59.34.0.* 2007-03-19 11:17 小刘 [未注册用户]
我用的时C#
在做报表时也选的是ttx文件
在本机调试通过,但是到别的机上运行时提示登入数据库
怎么回事??
  回复  引用  查看    










(只有博主才能看到)


posted on 2008-03-24 00:28  谭洪星  阅读(611)  评论(0编辑  收藏  举报

导航