【机房重构】——报表实现

简介: 【机房重构】——报表实现

引言


在第一次机房中结账中报表的实现是借助了第三方软件——Gid++Report,想想到时机房的时候报表就是个比较困难的地方,在重构的时候再次遇到报表的时候心里还是提高紧惕的,但是看到师哥师姐的博客的时候发现他们都是用的VS自带的报表,并且非常的容易实现,这些就放心了,于是就快乐的进入了结账阶段。但是现实总是那么的残酷,在实现的过程中又遇到了一个很大的问题,这个问题困扰了我3天,下面和大家分享:


报表实现——方法一


这个方法是我首先选择的一个,因为这个方法我们几乎不用写代码,直接把查询的sql语句写到数据集里面就可以轻松实现,这也是我选择这个方法的原因。具体过程参考我师父的博客《VS制作报表》,这篇博客写的非常详细!这是我在调错的过程中发现的这篇博客,在这推荐个大家。我们只需要在U层写一些代码用来传入参数即可,系统会自动生成两行代码如下:

    Me.CheckOut_InfoTableAdapter.Fill(me.DataSet1.CheckOut_Info,ThisDayPay.Prodate)
    Me.ReportViewer1.RefreshReport()

当我们用断点调试的时候会发现,当走完第一条语句后就不会执行第二条语句,这样的结果就是我们的报表中没有数据,但是我们在报表中预览数据的时候有数据,经过3天的调试最终以失败而告终,不知各路大神有没有高招,我们探讨一下!


报表实现——方法二


既然第一种方法不能成功当时我们不能让这么点事给憋死啊,于是开始寻找另一条路来实现我的报表功能,当上天给你关闭一扇门的时候总是会为你打开一扇窗,下面就和大家分享一下我是怎么通过这扇窗来实现我们的报表功能的。


添加报表的详细过程:


20150208114530513.png

20150208114557254.png


在工具栏中的下方找到工具栏,将上面的表直接拖到右边白框中,得到如下界面

20150208114806872.png

在此界面中给自己的数据集命名,然后点击新建,得到如下界面


20150208203532854.png

点击下一步,直到出现以下界面:


20150208203631107.png

单击新建连接,出现以下界面:


20150208203759091.png

点击确定后,选择下一步,出现以下界面:

20150208204111299.png


选择我们需要表后,单击完成出现以下按钮,再次出现以下界面,现在我们会发现在红框内已经有我们我们需要的数据源:

20150208204341837.png


点击确定后,就会出现我们的报表了,如下图

20150208205141460.gif


我们可以选择我们需要的字段来填充报表中的数据,自己修改表头名称,并且我们可以通过窗口左边的报表数据来给报表添加参数,像制表日期等,如下图:

20150208210653284.png


到此我们的报表大概的雏形就有了,其余的就根据自己的爱好来美化自己的报表了,下面来看一下是怎样通过代码将数据库中的数据添加到报表中的,U层代码如下:

        Dim rptDataSource As New ReportDataSource
        '设置报表数据源名称  
        rptDataSource.Name = "DayCheckDataSet"
        '设置报表数据源实例  
        rptDataSource.Value = dt
        '设置嵌入报表的资源的名称  
        ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.DayCheckReport.rdlc"
        '清空报表数据源  
        ReportViewer1.LocalReport.DataSources.Clear()
        '添加报表数据源  
        ReportViewer1.LocalReport.DataSources.Add(rptDataSource)
        Dim params() As ReportParameter =
  {
      New ReportParameter("MakeDate", Date.Today),
      New ReportParameter("MakeUser", Entity.PublicVariables._username)
  }
        '传递报表中的参数集合  
        ReportViewer1.LocalReport.SetParameters(params)
        Me.ReportViewer1.RefreshReport()

易错点分析:


错误一:


20150208224607874.png

错误来源:

ReportViewer1.LocalReport.ReportEmbeddedResource = <strong><span style="color:#ff0000;">"


在这行代码中我们加载的报表的名称和我们添加的报表的名称不对应


错误二:


20150208225615778.png

错误来源:


rptDataSource.Name ="DayCheckDataSet1"


在加载报表数据源的时候,数据源名称和我们在建立数据源的名称不一致!这个原因还可能导致我们只能加载我们报表的表头但是不能显示数据。


小结


每一次做报表都有意想不到的错误,但是每次都有很多的收获,这也许就是我们提倡的在错误中成长吧!像报表和导出Excel这些功能是我们在以后都常用的一些功能,所以我们必须很好的掌握,现在我们遇到的错误越多在以后我们做起来就会更加的顺手,在博客中遗留的问题我会继续寻找解决办法,等解决后会立即更新解决办法,也希望广大读者能给一些建设性意见!!!!

目录
相关文章
|
9月前
|
安全 前端开发 开发工具
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
465 5
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
|
3月前
|
自然语言处理 监控 机器人
Dify入门指南(5):从零开始构建智能客服机器人(保姆级教程)
无需编程,只需4步,10分钟用Dify搭建智能客服!文末附进阶技巧:数据分析优化、多轮对话设计及人工接管配置,助你打造高效客服助手。
|
人工智能 边缘计算 云计算
2024.11|云计算行业的商业模式创新方法及实践
截至2024年,全球云计算行业迈入全新阶段,从IaaS到大规模AI模型平台,技术与商业模式不断创新。本文分析全球最新技术进展,探讨云计算商业模式创新策略与实践,解析云服务厂商如何通过技术革新实现价值最大化,推动企业数字化与智能化转型。重点讨论AI与云计算的深度融合、边缘计算与去中心化发展、平台化与生态系统建设,以及数据安全与绿色云计算等关键议题。
785 30
|
Web App开发
如何设置谷歌浏览器在新窗口中打开链接?如何设置谷歌浏览器在新标签页中打开链接?
一、快捷键方式:  1、左键单击 ==》 在当前窗口中打开目标网页。  2、Shift + 左键单击 ==》 在新窗口中打开目标网页。  3、Ctrl + 左键单击 ==》 在新标签页中打开目标网页。  4、鼠标中键点击书签即打开新的标签页,在新的标签页中显示指定的网页。
59256 0
|
缓存 监控 数据处理
【编程底层原理】从播放音乐的网页中提取mp3音频文件的两种方式及背后的技术思考【短连接和长连接】
本文介绍了两种从网页提取音乐文件的方法:一是通过IE临时缓存获取,二是利用开发者模式捕捉网络流量并下载音频URL。同时探讨了网页播放音乐的技术实现,包括短连接和长连接的区别及其适用场景,以及数据传输中的阻塞概念。
1937 0
|
负载均衡 jenkins 应用服务中间件
大规模部署下的 Jenkins 高可用性与负载均衡
【8月更文第31天】随着软件开发流程的加速,持续集成/持续交付(CI/CD)工具的重要性日益凸显。Jenkins 作为最受欢迎的 CI/CD 平台之一,为企业提供了强大的自动化构建和部署功能。然而,在大规模部署场景下,单一的 Jenkins 实例可能无法满足高可用性和性能的需求。本文将探讨如何设计和实施 Jenkins 高可用集群,以支持大型组织的需求,并通过负载均衡技术来提高系统的稳定性和响应速度。
841 0
|
数据采集 Web App开发 Java
盘点Java爬虫框架
盘点Java爬虫框架
424 0
|
JSON Java 数据格式
springboot 接口返回json中null转换成空数组或空字符串(递归+反射实现)
本来想加一个Jackson的配置类修改ObjectMapper实现把null转空字符串或空数组,但是加上之后发现没效果,找不到问题在哪里,不知道是不是我使用@RestControllerAdvice全局返回处理类的问题,所以就自己写了一个工具类方法处理,就在全局返回处理类里面调用
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB For MySQL 使用快速入门教程
阿里云PolarDB For MySQL快速入门旨在介绍如何创建PolarDB MySQL引擎集群、进行基本设置以及连接数据库集群,使您能够了解从购买PolarDB到开始使用的流程。
1036 0
阿里云PolarDB For MySQL 使用快速入门教程