VS2013自带报表+打印功能
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/u010773667/article/details/27540389
经过了VB版机房收费系统的学习,相信如今说起报表。我们已经不再认为陌生。
VB打印报表的功能是通过引用第三方控件来实现的,而相对的VS就在VB的基础上完好了这一功能,VS自带报表控件和打印功能。这样就给我们这些编程者带来了非常大的方便。以下就将我做程序的一些小经历来跟大家一起分享一下。
1,我们右击U层所在目录加入“新建项”。
2,在弹出的的加入新建项窗体中找到“reporting”,在右面的内容窗体中选中“报表”选项。设置报表的名称。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDc3MzY2Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
3。点击确定后,显演示样例如以下界面。我们能够通过“报表数据”内的选项设置一些内置字段、參数等信息。
假设界面不显示“报表数据”窗体, 能够通过“视图”——“报表数据(最后一项)”或者“Ctrl+Alt+D”来打开数据窗体。
4。在上图的“报表数据”窗体中选择“新建”——“数据集”。进入下图界面。选中“数据库”,下一步,。选中“数据集”。进入“数据源设置向导”窗体。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDc3MzY2Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
5。点击“新建连接”,在“加入连接”对话窗体中设置服务器名、username、password、连接到的数据库等信息。然后点击“測试连接”,出现“測试连接成功”。然后确定,一直下一步。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDc3MzY2Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
6,给数据集加入须要应用的数据库对象,表、视图、存储过程等等。
这里仅仅用到了表,然后确定。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDc3MzY2Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
7,加入完毕数据库对象后加入的对应信息显演示样例如以下界面。
能够改动数据集名称。
8,设置完以上步骤后就可以在“报表数据”窗体中看到新建的数据集信息了。
9,接下来就是设计报表格式了。
打开左側的工具箱。能够看到图示的“报表项”,文本框、表、矩阵、列表等等。假设没有工具性选项卡,能够“Ctrl+Alt+X”快捷打开。
文本框用于显示文字、传递參数。表和矩阵则能够用来存放数据。
不同的是表是针对于“列数固定、行数可变的数据”设计的,而矩形则是针对于“列数与行数均可变”的聚合数据设计的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDc3MzY2Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
10。依据功能要求。设计完的报表界面如图所看到的。因此这里须要用到的工具是“表”。从表中能够看出。我们最后须要打印的是单条记录的信息。而机房中我们得到的都是整张表的信息。二者的差别在于:在报表绑定数据库的时候绑定的是指定的记录还是整张表。
11。首先在工具箱中选中工具“表”拖动到报表窗体中。由上图我们能够看到,不同于曾经报表的是,格式发生了变化。事实上非常easy。仅仅需合并单元格就能够了。比如,标题栏。选中标题栏所在行的全部列。鼠标右击,选中“合并单元格”就OK啦~~~在须要显示文本内容的列中直接双击输入信息就可以,须要载入数据库信息的列点击右上角的数据集小图标就可以自己主动载入对应的数据集信息。然后依次选中对应的信息选项就可以。到此。报表就算是设计完了。接下来就是打印了。
13,首先在项目中新建一个windows窗体。在左側的工具箱中“报表”目录下找到“ReportViewer”选中并将其拖放到窗体上,调整合适的大小与位置。
14。详细代码实现打印过程:
<pre name="code" class="csharp"><span style="font-family:KaiTi_GB2312;font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient ;
using Microsoft.Reporting.WinForms;
using System.Configuration;
using LRepairBill;
namespace RepairBill.UI
{
public partial class ReportPrint : Form
{
public ReportPrint()
{
InitializeComponent();
}
private void ReportPrint_Load(object sender, EventArgs e)
{
reportViewer1.Clear();
string bill_Num = CheckBill.str;
string connstring = "server=.;database=Repair;uid=sa;pwd=123456";
SqlConnection conn = new SqlConnection(connstring);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select*from repair_table where bill_num=@Bill_Num";
cmd.Parameters.Add(new SqlParameter("@Bill_Num", bill_Num));
conn.Open();
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
try
{
System.Data.SqlClient.SqlDataAdapter ada1 = new System.Data.SqlClient.SqlDataAdapter(cmd);
ada1.Fill(dt);
}
finally
{
conn.Close();
cmd.Dispose();
conn.Dispose();
}
ReportDataSource rds = new ReportDataSource("DataSet1", dt);
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(rds);
//为报表浏览器指定报表文件
this.reportViewer1.LocalReport.ReportEmbeddedResource = "RepairBill.UI.RepairReport.rdlc"; //指定数据集,数据集名称后为表,不是DataSet类型的数据集
this.reportViewer1.RefreshReport();
//reportViewer1.clear();
//this.reportViewer2.RefreshReport();
}</span>
特别须要注意的是,在为报表浏览器指定报表文件时,假设不确定究竟该怎么写,能够通过以下路径来确定。假设此处出现错误,可能会提示N种报错信息,为了节省时间,所以一開始就要细致确认好。
通过这次的总结,再次验证了“学习是一个重复的过程”。这里,仅仅跟大家分享了我用到的部分和遇到的一些问题,很多其它的知识还须要大家自己去学习和运用。
也希望大家来一起交流。一起积累,一起进步。
VS2013自带报表+打印功能的更多相关文章
- 62. 用流程自带的打印功能,IE浏览器打印出来是空白
用流程自带的打印功能,IE浏览器打印出来是空白的这个问题确认是由于IE启用了兼容模式导致的了把IE的兼容模式关掉就行了
- 使用POI实现报表打印功能
[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/53393453 作者:朱培 ID:sdksdk0 这 ...
- layer系列之table导出+打印功能总结
1.关于layui导出方式,直接使用layui(版本2.4.5及以上)自带的导出方法即可: layui官网地址:https://www.layui.com/ 源码如下: <!DOCTYPE ht ...
- 使用FastReport.net 报表在网页上实现打印功能
这些年的工作当中,最早是在8年前接触到FastReport这个报表工具,从名字上来看,直译过来就是快速报表,正所谓天下武功,唯快不破,FastReport报表早些年确实是制作报表的不二之选,8年前的工 ...
- VS2013自带的Browser Link功能引发浏览localhost网站时不停的轮询
浏览localhost网站时候不管你打开那个页面它都会不停的轮询.据悉这是VS2013自带的Browser Link功能,里面用到SignalR机制 什么是Browser Link功能,什么是Sign ...
- 个人永久性免费-Excel催化剂功能第50波-批量打印、导出PDF、双面打印功能
在倡导无纸化办公的今天,是否打印是一个碍眼的功能呢,某些时候的确是,但对于数据的留存,在现在鼓吹区块链技术的今天,仍然不失它的核心价值,数据报表.单据打印出来留存,仍然是一种不可或缺的数据存档和防篡改 ...
- 完美演绎DevExpress XtraPrinting Library 的打印功能
完美演绎DevExpress XtraPrinting Library 的打印功能 2010-05-14 17:40:49| 分类: 默认分类|字号 订阅 设计报告不仅费时间,而且还乏味!但 ...
- JS调用水晶报表打印翻页按钮事件
默认的水晶报表打印按钮.翻页按钮太小,并且样式不好调整,考虑自己做一个按钮,然后调用水晶报表的按钮事件. 在实际操作中发现可以在.net按钮的服务器端事件中调用翻页方法: CrystalReportV ...
- vc 实现打印功能
Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这 ...
随机推荐
- 手把手教你实现自己的abp代码生成器
代码生成器的原理无非就是得到字段相关信息(字段名,字段类型,字段注释等),然后根据模板,其实就是字符串的拼接与替换生成相应代码. 所以第一步我们需要解决如何得到字段的相关信息,有两种方式 通过反射获得 ...
- ASP.NET MVC下载excel文档
问题来自论坛: 很早以前,学习做asp.net练习时,就是分享过<ASP.NET MVC应用程序实现下载功能>http://www.cnblogs.com/insus/p/3615714. ...
- 在iframe窗体内 获取父级的元素;;在父窗口中获取iframe中的元素
在iframe中获取父窗口的元素 $(‘#父窗口中的元素ID’, parent.document).click(); 在父窗口中获取iframe中的元素 $(“#iframe的ID”).content ...
- C# 函数 递归
函数:独立完成某项功能的一个个体,有固定功能函数有 高度抽象函数. 作用: 提高代码的重用性 提高功能开发的效率 提高程序代码的可维护性 函数四要素: 输入 输出 函数名 ...
- extJs常用的四种Ajax异步提交
/** * 第一种Ajax提交方式 * 这种方式需要直接使用ext Ajax方法进行提交 * 使用这种方式,需要将待传递的参数进行封装 * @return */function saveUser_aj ...
- CentOs 7.3下ELK日志分析系统搭建
系统环境 为了安装时不出错,建议选择这两者选择一样的版本,本文全部选择5.3版本. System: Centos release 7.3 Java: openjdk version "1.8 ...
- 撩课-Web大前端每天5道面试题-Day35
1.React 中 refs 的作用是什么? Refs 是 React 提供给我们的安全访问 DOM 元素或者某个组件实例的句柄. 我们可以为元素添加 ref 属性然后在回调函数中接受该元素在 DOM ...
- 撩课-Web大前端每天5道面试题-Day32
1.module.export.import是什么,有什么作用? module.export.import是ES6用来统一前端模块化方案的设计思路和实现方案. export.import的出现统一了前 ...
- (一)认识Sass和Compass
第一章 Sass和Compass让样式表重焕青春 // 内容概要// 开始学习Sass和动态样式表// 用Sass更高效地写样式表// Compass简介// 用Compass迎接工程实践中的样式挑战 ...
- python-适配器模式
源码地址:https://github.com/weilanhanf/PythonDesignPatterns 说明: 为了解决接口不兼容的问题引进一种接口的兼容机制,就是适配器模式,其通过提供一种适 ...