您的位置:首页 > 其它

动态水晶报表的实现

2010-07-23 16:47 344 查看



实现基本功能的动态水晶报表

系统配置:VS2005+内嵌的水表

目的:

我也是刚接触.net不久,做项目过程中需要设计报表,可一个个的做起来烦啊,原来做过一个vb6的动态报表,用起来还不错,故也想弄一个水表的东东。因为水表接触时间不长,做的也不是很顺手,用了我半个月的时间才弄个大概模样,不当之处还请各位见谅。觉得有用就看看,没用就当没看到吧。

目前实现的功能

1、报表标题、页码显示格式、纸张大小、纸张方向、边距等的动态修改

2、报表列标题的动态修改(2行也支持,但是感觉定义麻烦)

最大允许用户定义40列(内部定义的公式总数决定的,呵呵)

同时显示的列数必须<=提供的数据表里面的字段数,不让报错

3、数据部分偷懒了,是和提供的数据表的顺序一致(本来想做两种方式的)

4、分组头部分

简单的显示分组名

5、分组尾部分

这部分能定义是否显示、以及组的小计,比如计数、求和等

6、报表尾部分

这部分能定义是否显示、以及总计信息,比如计数、求和等

调用方法

Dim strSql As String = "select a.EmployeeID,FirstName,Title,LastName,a.Region,a.postalCode,a.country,a.homephone,a.reportsto,CompanyName,ContactName,c.OrderID,ShipCity,ShipPostalCode,ProductID,UnitPrice,Quantity,Discount " & _
"from Employees a,Customers b,Orders c , [Order Details] d " & _
"where(a.EmployeeID = c.EmployeeID And b.CustomerID = c.CustomerID And c.OrderID = d.OrderID)"
ds = Getdata(strSql)

Dim rc As Integer
Dim aa As New CryClsV1.AutoRepDoc

rc = aa.CreateRepDoc(Sfile, ds.Tables(0), sInfo)‘Sfile是Ini格式的报表设置文件

'sinfo是定义的报表左下角显示的内容
If rc > 0 Then
MsgBox(rc)
Else
CrystalReportViewer1.ReportSource = aa.ReportDoc
End If
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: