关于水晶报表的几个问题
本菜鸟刚学习VS.Net和水晶报表,使用的是Vs.Net 2003及其自带的水晶报表,有几个问题想请教。
1、关于“登录失败”,谈谈自己的遭遇。
前几天也遇到水晶报表“登陆失败”的问题,看了很多文章,也没解决。结果发现问题出在水晶报表的设计上。
我在设计水晶报表时,用的数据源是数据库表。而我以前做其他项目时曾经创建过一个连接该数据库的ODBC,为了方便,我就选择使用ODBC来连接到数据库进行水晶报表(模板)的设计,结果在程序中就出现了“登陆失败”的问题。
而后来发现在设计水晶报表(模板)时,使用OLE DB进行连接数据库,即使在后台代码中不进行数据库连接,也能连接到数据库。当然,如果要把项目部署到其他机器,数据库连接还是要做的。
不知道有没有人有同样的遭遇,目:
2、关于水晶报表导出。
源代码如下:
Dim oRpt As ReportDocument = New ReportDocument
oRpt.Load(MapPath("olecr.rpt"))
Dim logoninfo As TableLogOnInfo = New TableLogOnInfo
With logoninfo.ConnectionInfo
.ServerName = "server"
.DatabaseName = "traffic"
.UserID = "sa"
.Password = ""
End With
oRpt.Database.Tables(0).ApplyLogOnInfo(logoninfo)
oRpt.ExportToDisk(ExportFormatType.PortableDocFormat, "d:\abc")
oRpt = Nothing
发生一个错误,如下:
文件 E:\...\olecr.rpt 内出错:拒绝访问报表文件。其他程序可能正在使用它。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: 文件 E:\...\olecr.rpt 内出错:拒绝访问报表文件。其他程序可能正在使用它。
3、关于水晶报表打印
源代码:
CrystalReportViewer1.DisplayGroupTree = False
CrystalReportViewer1.DisplayToolbar = False
Dim oRpt As ReportDocument = New ReportDocument
oRpt.Load(MapPath("olecr.rpt"))
Dim logoninfo As TableLogOnInfo = New TableLogOnInfo
With logoninfo.ConnectionInfo
.ServerName = "server"
.DatabaseName = "traffic"
.UserID = "sa"
.Password = ""
End With
oRpt.Database.Tables(0).ApplyLogOnInfo(logoninfo)
'下面这行代码可以去掉
oRpt.PrintOptions.PrinterName = "HP LaserJet 5000 Series PCL 6"
oRpt.PrintToPrinter(1, False, 0, 0)
oRpt = Nothing
错误:
水晶报表能发送到打印机,可是打印机任务列表中该任务状态显示为“错误-正在打印”,不知道什么原因。
很多人说可以调用IE的打印功能进行打印,可是这样怎么进行分页呢?比如一页要打印30条记录。