当前位置: 首页 > news >正文

取消水晶报表的数据库登录框 分享

这两天在和斌做后台中的报表,暂定使用水晶报表,目前还只是处于对水晶报表的初级应用阶段,也就是知道如何 汇个总、写个函数、传个参数。

问题总是层出不穷,在最后整合报表,进行报表显示测试的时候,发现每次更新数据显示(除第一次)时都会蹦出一个“登录数据库的信息提示界面”很是苦闷,并且这肯定不是我们需要的,还是需要花大力气搞定的。

于是参考了某斑竹写的一篇 “取消水晶报表的数据库登陆框”博文。颇有感触,于是进行了消化吸收,整合代码如下。

主要是,针对水晶报表对每数据库登录(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>

相关文章:

  • 第一篇wms常用词语
  • 发一个比较实在的国外网赚调查,比国内好N多! - 健康程序员,至尚生活!
  • 现实总比相像中好些——西单图书大厦活动侧记
  • 感冒怎么办,少听音乐防止感冒 - 健康程序员,至尚生活!
  • 关于耗子
  • ArcSDE vs. Oracle Spatial 11
  • CreateCompatibleDC - [Daliy APIs]
  • 软件配置及软件配置项简介
  • jQuery應用 - 製作返回頂部效果
  • 庚寅端午返乡有感做
  • 关于低调的一些文章——在低调中修炼自己.doc
  • World Cup 2010 for Windows Mobile介绍
  • My First Time For PHP
  • C#生成缩略图
  • 假期的充电
  • 10个最佳ES6特性 ES7与ES8的特性
  • centos安装java运行环境jdk+tomcat
  • Django 博客开发教程 16 - 统计文章阅读量
  • ES6 ...操作符
  • laravel with 查询列表限制条数
  • mysql 5.6 原生Online DDL解析
  • Terraform入门 - 3. 变更基础设施
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 从0实现一个tiny react(三)生命周期
  • 聚类分析——Kmeans
  • 删除表内多余的重复数据
  • 王永庆:技术创新改变教育未来
  • 携程小程序初体验
  • 中文输入法与React文本输入框的问题与解决方案
  • mysql面试题分组并合并列
  • ​HTTP与HTTPS:网络通信的安全卫士
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #考研#计算机文化知识1(局域网及网络互联)
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (超详细)语音信号处理之特征提取
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (六)Hibernate的二级缓存
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四) 虚拟摄像头vivi体验
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)jQuery 基础
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • ***利用Ms05002溢出找“肉鸡
  • .cn根服务器被攻击之后
  • .Net 6.0 处理跨域的方式
  • .Net CF下精确的计时器
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?