版权声明:本文为博主原创文章,未经博主同意不得转载。 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自带报表+打印功能的更多相关文章

  1. 62. 用流程自带的打印功能,IE浏览器打印出来是空白

    用流程自带的打印功能,IE浏览器打印出来是空白的这个问题确认是由于IE启用了兼容模式导致的了把IE的兼容模式关掉就行了

  2. 使用POI实现报表打印功能

    [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/53393453 作者:朱培 ID:sdksdk0 这 ...

  3. layer系列之table导出+打印功能总结

    1.关于layui导出方式,直接使用layui(版本2.4.5及以上)自带的导出方法即可: layui官网地址:https://www.layui.com/ 源码如下: <!DOCTYPE ht ...

  4. 使用FastReport.net 报表在网页上实现打印功能

    这些年的工作当中,最早是在8年前接触到FastReport这个报表工具,从名字上来看,直译过来就是快速报表,正所谓天下武功,唯快不破,FastReport报表早些年确实是制作报表的不二之选,8年前的工 ...

  5. VS2013自带的Browser Link功能引发浏览localhost网站时不停的轮询

    浏览localhost网站时候不管你打开那个页面它都会不停的轮询.据悉这是VS2013自带的Browser Link功能,里面用到SignalR机制 什么是Browser Link功能,什么是Sign ...

  6. 个人永久性免费-Excel催化剂功能第50波-批量打印、导出PDF、双面打印功能

    在倡导无纸化办公的今天,是否打印是一个碍眼的功能呢,某些时候的确是,但对于数据的留存,在现在鼓吹区块链技术的今天,仍然不失它的核心价值,数据报表.单据打印出来留存,仍然是一种不可或缺的数据存档和防篡改 ...

  7. 完美演绎DevExpress XtraPrinting Library 的打印功能

    完美演绎DevExpress XtraPrinting Library 的打印功能 2010-05-14 17:40:49|  分类: 默认分类|字号 订阅     设计报告不仅费时间,而且还乏味!但 ...

  8. JS调用水晶报表打印翻页按钮事件

    默认的水晶报表打印按钮.翻页按钮太小,并且样式不好调整,考虑自己做一个按钮,然后调用水晶报表的按钮事件. 在实际操作中发现可以在.net按钮的服务器端事件中调用翻页方法: CrystalReportV ...

  9. vc 实现打印功能

    Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这 ...

随机推荐

  1. MVC删除操作前confirm提示

    本段时间,忙于公司的ERP问题,博客也没有怎样更新了.昨晚于家中学习了MVC时,对删除记录前,让用户有后悔选择.即是说,能先给用户一个提示,然后再让用户决定是否删除记录.以前练习MVC,对删除记录,均 ...

  2. css中添加屏幕自适应方法(rem)

    css中添加屏幕自适应方法(rem) 只需要在公共css文件中添加下面代码:设计稿以750px,基础字体为20px为例,兼容性高,使用过程中px转化为rem即可 /*竖屏*/ @media scree ...

  3. Redis列表操作

    列表类似于双向链表结构,可从序列两端推入或者弹出元素. (列表常用命令) RPUSH : RPUSH key-name value  [value1 value2,...] ------------将 ...

  4. js中的json的小例子

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  5. python-责任链模式

    源码地址:https://github.com/weilanhanf/PythonDesignPatterns 说明: 当你作为一名coder已经快三十却还还没有女朋友,家中父母已经着急万分,此时要求 ...

  6. 你不知道的JavasScript上篇·第五章·原型·上

    1.[[Prototype]] JS中的对象有一个特殊的[[Prototype]]内置属性,其实就是对于其他对象的引用.几乎所有的对象在创建时这个属性都被赋予一个非空的值 (proto) var my ...

  7. css实现自适应正方形的方法

    页面布局中,我们经常需要用百分比来实现宽度自适应,但是如果这时候高度要跟宽度呈固定比例变化,该怎么办呢? 很简单,我们可以利用元素的padding或margin的百分比值是参照父元素的宽度这一特性来实 ...

  8. python学习笔记之——python安装mysqldb后,pycharm导入还是报错问题

    在安装mysqldb过程中遇到,本来已经安装了mysqldb了,但是在pycharm中import   MySQLdb还是报错找不到该模块的问题.解决方法如下:1.file->settings ...

  9. VS2010部署相关

    找到一篇写得最负责的.贴住收藏了: http://blog.csdn.net/xhf55555/article/details/7702212. 之前在其它地方找的都缺胳膊少腿,真不知他们自己怎么实现 ...

  10. Expo大作战(十三)--expo如何自定义状态了statusBar以及expo中如何处理脱机缓存加载 offline support

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...