取消水晶报表的数据库登录框 分享
2010-06-07 08:33
288 查看
这两天在和斌做后台中的报表,暂定使用水晶报表,目前还只是处于对水晶报表的初级应用阶段,也就是知道如何 汇个总、写个函数、传个参数。
问题总是层出不穷,在最后整合报表,进行报表显示测试的时候,发现每次更新数据显示(除第一次)时都会蹦出一个“登录数据库的信息提示界面”很是苦闷,并且这肯定不是我们需要的,还是需要花大力气搞定的。
于是参考了某斑竹写的一篇 “取消水晶报表的数据库登陆框”博文。颇有感触,于是进行了消化吸收,整合代码如下。
主要是,针对水晶报表对每数据库登录(DbLogOn)提供一次数据库链接信息。
其中一个报表:
配置文件:
问题总是层出不穷,在最后整合报表,进行报表显示测试的时候,发现每次更新数据显示(除第一次)时都会蹦出一个“登录数据库的信息提示界面”很是苦闷,并且这肯定不是我们需要的,还是需要花大力气搞定的。
于是参考了某斑竹写的一篇 “取消水晶报表的数据库登陆框”博文。颇有感触,于是进行了消化吸收,整合代码如下。
主要是,针对水晶报表对每数据库登录(DbLogOn)提供一次数据库链接信息。
Imports CrystalDecisions.Shared Imports CrystalDecisions.CrystalReports.Engine Imports System.Reflection Imports System.Configuration Imports CrystalDecisions.Web Public Class ReportConfig ''' <summary> ''' 提供web报表链接数据库所需要的信息,无参数,有返回值。 ''' </summary> ''' <returns>返回链接信息的属性,其中有servername、database、userid、pwd</returns> ''' <remarks></remarks> Public Function readConfig() As TableLogOnInfo Dim strServerName As String Dim strDataBase As String Dim strUserId As String Dim strPwd As String Dim logoninfo As New TableLogOnInfo '从web.config配置文件中读取信息. strServerName = System.Configuration.ConfigurationManager.AppSettings("servername") strDataBase = System.Configuration.ConfigurationManager.AppSettings("database") strUserId = System.Configuration.ConfigurationManager.AppSettings("userid") strPwd = System.Configuration.ConfigurationManager.AppSettings("pwd") logoninfo.ConnectionInfo.ServerName = strServerName logoninfo.ConnectionInfo.DatabaseName = strDataBase logoninfo.ConnectionInfo.UserID = strUserId logoninfo.ConnectionInfo.Password = strPwd '信息封装成logoninfo. Return logoninfo End Function ''' <summary> ''' 设置报表查看器不再显示登录数据库提示 ''' </summary> ''' <param name="crv">当前报表查看器id</param> ''' <param name="coninfo">报表链接到数据库所需信息</param> ''' <returns></returns> ''' <remarks></remarks> Public Function SetDbLoginForReport(ByVal crv As CrystalReportViewer, ByVal coninfo As ConnectionInfo) As String 'tablelogoninfos 就是包括每个表中的logoninfo对象 Dim tablelogoninfos As TableLogOnInfos = crv.LogOnInfo Dim logoninfo As New TableLogOnInfo For Each logoninfo In tablelogoninfos '绑定每一个logoninfo对象的数据库链接信息,这样可以不再显示数据库登录提示信息。 logoninfo.ConnectionInfo = coninfo Next Return Nothing End Function End Class
其中一个报表:
'省略.... Dim SelectByDate As New CollectMgr Dim dt As New DataTable Dim doc As New ReportDocument Dim coninfo As New TableLogOnInfo Dim reportconfig As New ReportConfig '省略.... '获得报表链接数据库所需的所有参数信息 coninfo = reportconfig.readConfig Try '加载报表样表 doc.Load(Server.MapPath("./Cashier.rpt")) '返回数据源 If txtStartTime.Value = txtEndTime.Value Then dt = SelectByDate.FoodCollect(txtStartTime.Value) Else dt = SelectByDate.FoodCollect(txtStartTime.Value, txtEndTime.Value) End If doc.SetDataSource(dt) crvCashierReport.ReportSource = doc '防止出现提示登录数据库的情况 reportconfig.SetDbLoginForReport(crvCashierReport, coninfo.ConnectionInfo) '结束
配置文件:
<appSettings> <add key="servername" value="****" /> <add key="database" value="***" /> <add key="userid" value="**" /> <add key="pwd" value="***" /> </appSettings>
相关文章推荐
- 取消水晶报表的数据库登录框 分享
- 水晶报表页面打开数据库登录框提示取消方法
- 取消水晶报表的数据库登陆框
- [转] 在使用水晶报表时数据库登录对话框,要求输入登录密码啊?是怎么回事啊,如何解决?
- vs2005水晶报表页面打开数据库登录框提示取消方法[转]
- 水晶报表 出现 您请求的报表需要更多信息. 及数据库登录对话框
- 水晶报表 Pull方式 数据库登录问题 解决方式2
- 水晶报表 Pull方式 数据库登录问题 解决方式1(推荐)
- vs2005水晶报表页面打开数据库登录框提示取消方法[转]
- C#下水晶报表的数据动态绑定(推模式, 非关联数据库)
- [水晶报表]创建不受数据库限制的报表(2)
- 关于水晶报表出现登录窗口问题的解决方法
- 企业应用之水晶报表资料分享
- [水晶报表]创建不受数据库限制的报表(2)
- (百分之一可能).net 水晶报表弹出登陆数据库框解决方法
- 解决VS2005水晶报表多表关联去除数据库登录框
- [水晶报表]创建不受数据库限制的报表(3)
- 水晶报表项目运行时 去掉 输入连接数据库密码 的页面
- 水晶报表登录,消除连接框
- [水晶报表]创建不受数据库限制的报表 .Net 版本 -1