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提供的框架内实现这 ...
随机推荐
- Mysql密码忘记了怎么办?
停止mysql: sudo /etc/init.d/MySQL stop(可能有其它的方法,总之停止MySQLd的运行就可以了) 修改mysql的配置文件: 在/etc/mysql/mysql.con ...
- Spring Security(二)
Spring Security(二) 注:凡是源码部分,我已经把英文注释去掉了,有兴趣的同学可以在自己项目里进去看看.:-) 定义用户认证逻辑 用户登录成功后,用户的信息会被 Security 封装在 ...
- Can you find it?(数组+二分hdu2141)
Can you find it? Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/10000 K (Java/Others ...
- mongodb远程连接访问
随着云计算,云服务的不断发展演进,数据库的管理及维护方式也在转变,传统基于C/S客户端工具管理的方式,已经无法满足实际需要. TreeSoft数据库管理系统,采用web方式,对mongoDB,MySQ ...
- HDU3715(二分+2-SAT)
Go Deeper Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- Unix环境高级编程:守护进程
参考 Unix环境高级编程,第9,13章 介绍 守护进程就是Linux中使用ps aux那些一般以d结尾的程序,比如rsyslogd,sshd等,为daemon简称.他们是长期在后台执行的随终端关闭而 ...
- python学习之老男孩python全栈第九期_day005知识点总结
1. 数据类型划分: (1) 不可变数据类型(可哈希): 元组, bool, int(123 就是123,不会变成其他数), str, 字典的keys (2) 可变数据类型(不可哈希): 列表list ...
- Jquery中on绑定的一些小坑
---恢复内容开始--- 今天我们来说说关于JQuery中事件绑定中on绑定的一些小问题,直接上代码了,大家拷下去就可以用 <!DOCTYPE html> <html lang=&q ...
- 【代码笔记】iOS-字体从右向左滚动
一,效果图. 二,代码. ViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup ...
- 常用,好用的js代码
记录看到或者用到的js代码,长期更新! 判断是否是正整数 (number-0)|0 !== number-0 解析: number-0 转换成数字,再通过位移运算(|)判断是否跟原数字相等 安全检查j ...