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提供的框架内实现这 ...
随机推荐
- MVC应用程序显示上传的图片(续)
上一篇<MVC应用程序显示上传的图片>http://www.cnblogs.com/insus/p/3597543.html 最后有提及没有实现用户点击图片,显示原图的功能.此篇Insus ...
- Maven为不同环境配置打包
在开发过程中经常要遇到为不同的环境打包,这里面最主要的问题在于,不同环境的配置是不一样的,如果为不同环境打包每次都手工修改配置,那不但工作量大,而且很容易出错.如果用ant的话,用变量加上replac ...
- java多线程框架
JDK5中的一个亮点就是将Doug Lea的并发库引入到Java标准库中.Doug Lea确实是一个牛人,能教书,能出书,能编码,不过这在国外还是比较普遍的,而国内的教授们就相差太远了. 一般的服务器 ...
- Java虚拟机--虚拟机类加载机制
虚拟机类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 类的生命周期如下: 加载 ...
- java如何正确停止一个线程
Thread类中有start(), stop()方法,不过stop方法已经被废弃掉. 平时其实也有用过,共享一个变量,相当于标志,不断检查标志,判断是否退出线程 如果有阻塞,需要使用Thread的in ...
- call,apply,bind
var student={ name:"马云", say:function(){ console.log(this.name); } } var f=student.say; f. ...
- Android8自定义广播无法收到消息
在Android 8之前,如果要发送自定义的静态广播,做好其他配置后,只需实例化一个Intent对象intent,然后将其作为参数传入sendBroadcast()方法中即可,例如 Intent in ...
- SVN查看所有日志提交记录
1. svn默认显示最近一周的文件提交和修改记录,怎么查看更长时间的日志记录呢? 2. TortoiseSVN 3. 点击show all 或者NEXT 100,就可显示更长时间的文件提交记录.
- Unable to open debugger port (127.0.0.1:63777): java.net.BindException "Address
困扰了我好久,试过删掉taget文件夹rebuild,不删除Tomcat Server配置手动修改端口号也不行,试过杀掉java进程和重启机器,但是就是没效果. 解决: 删除Tomcat Server ...
- python实现贪婪算法解决01背包问题
一.背包问题 01背包是在M件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2至Wn,与之相对应的价值为P1,P2至Pn.01背包是背包问题中最简单的问题.01背包的约束条件是给定几种物 ...