水晶报表介绍

水晶报表是 vs 早期版本自带的一款报表控件。vs2017不自带水晶报表,需要自行安装。虽然水晶报表是收费控件,但是微软已经付过钱了,所以vs自带的水晶报表可以直接使用。

如果项目是 .net 4.0 以上版本,需要修改 App.config 文件。因为水晶报表的 .net 版本可能低于 .net 4.0

在软件发布的时候需要把对应的config文件一起发布,否则也无法使用水晶报表

<startup useLegacyV2RuntimeActivationPolicy="true"> //在这一行加入 useLegacyV2RuntimeActivationPolicy="true"
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 

</startup>

在解决方案资源管理器中添加数据集DataSet1.xsd,在数据集中添加 DataTable.

新建 Crystal Reports 文件

在解决方案资源管理器中新建 Crystal Reports 文件: CrystalReport1.rpt 。添加后左侧会出现 “字段资源管理器” 。如果不小心关掉字段资源管理器,可以在 “视图”  “其它窗口”  “文档大纲” 将其调出。

vs的工具箱中也会出现相应的控件。可以将文本对象添加到报表中。 文本对象常用属性:CanGrow (可以自动换行)  HorAlignment (居中,靠左,靠右)。

在数据库字段右键选择数据库专家。添加项目数据中的 DataTable1

在 “组名字段” 右键插入组。选择 DataTable1 中的字段 ,排序方式选择按原始顺序(水晶报表的排序方式不实用,一般在设置 DataTable 时自行排序)。

数据库字段中的 Name Sex 可以拖到报表的详细资料中。报表的页眉会自动添加文本框。文本框的内容可修改为姓名,性别。

在界面中添加显示控件:CrystalReportViewer   重命名为crv

在窗口中创建报表对象并添加数据,显示到 CrystalReportViewer 上面。可以直接打印,也可以通过控件上的打印按钮打印。

using CrystalDecisions.CrystalReports.Engine;
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; namespace CrTest
{
public partial class Form1 : Form
{
public Form1(bool directPrint = false)
{
InitializeComponent();
DataSet1 ds = new DataSet1();
ds.DataTable1.Rows.Add("组1", "张1", "男");
ds.DataTable1.Rows.Add("组3", "王1", "男");
ds.DataTable1.Rows.Add("组2", "李1", "男");
ds.DataTable1.Rows.Add("组1", "张2", "男");
ds.DataTable1.Rows.Add("组1", "张3", "女");
ds.DataTable1.Rows.Add("组1", "张4", "男");
ds.DataTable1.Rows.Add("组2", "李2", "男");
ds.DataTable1.Rows.Add("组2", "李3", "女");
ds.DataTable1.Rows.Add("组2", "李4", "男");
ds.DataTable1.Rows.Add("组3", "王2", "男"); ReportClass cr = new CrystalReport1();
cr.SetDataSource(ds);
TextObject title = (TextObject)cr.ReportDefinition.ReportObjects["Text1"];
title.Text = "人员表格";
if (directPrint)
{
PrintDialog print = new PrintDialog();
if (print.ShowDialog() == DialogResult.OK)
{
cr.PrintOptions.PrinterName = print.PrinterSettings.PrinterName;
cr.PrintToPrinter(, false, , );
}
}
this.crv.ReportSource = cr;
}
}
}

结尾

除了上述的基本功能外,水晶报表还有很多其他的用法。如:节专家,交叉表(在报表上右键选择 插入 交叉表)。笔者精力有限,未能继续研究。

c# 水晶报表使用说明的更多相关文章

  1. 2.ASP.NET MVC 中使用Crystal Report水晶报表

    上一篇,介绍了怎么导出Excel文件,这篇文章介绍在ASP.NET MVC中使用水晶报表. 项目源码下载:https://github.com/caofangsheng93/CrystalReport ...

  2. C#水晶报表,窗体不显示,闪退

    一.问题说明 由于VS2008以后水晶报表不在集成,要用的话需要单独下载. 这里注意如果是用在C#窗体程序里的话一定要下载exe文件,安装msi文件的话VS工具栏里找不到水晶报表控件的.如果你的是64 ...

  3. 水晶报表初体验(Visual Studio 2010)

    安装水晶报表后如下使用: 配置rpt文件,如图 前台(Asp.net页面): <%@ Register Assembly="CrystalDecisions.Web, Version= ...

  4. c# 水晶报表的设计(非常的基础)

    最近在公司实习,由于公司需要用到的一种叫做水晶报表的神奇的东东,老大就叫我们学习学习.怕自己以后忘了,也为了以后阅读方便,将其记录下来. 使用工具:vs2008 基本方法一.使用水晶报表的推模式 步骤 ...

  5. 水晶报表13.x(Crystal Reports for VS2010)的安装部署经验

    这两天搞安装包真心坎坷,一个问题接一个问题,先是为了实现自定义动作现啃vbs,后面又是安装过程老是报错: 各种搜索.各种尝试,总算搞掂,积累了些经验,分享一下. 首先CR for VS2010的所有东 ...

  6. C#操作word或excel及水晶报表,检索 COM 类工厂中 CLSID 为 {} 的组件时失败,原因是出现以下错误: 80070005

    解决办法一:<转自http://www.cnblogs.com/Sue_/articles/2123372.html> 具体解决方法如下: 1:在服务器上安装office的Excel软件. ...

  7. VS2010 水晶报表的使用

    在VS2010中新建一个“Windows 窗体应用程序”项目,在该项目中添加一个水晶报表“CrystalReport1.rpt”,然后在项目上点击鼠标右键属性,将“目标框架”改为“.Net Frame ...

  8. 安装VS2010水晶报表插件

    Visual Studio 2010默认不带水晶报表,需要安装一个水晶报表插件,首先下载此插件: http://downloads.businessobjects.com/akdlm/cr4vs201 ...

  9. Crystal Reports 2008(水晶报表) 第一个报表

    学习Craystal Reports 2008的时候,光看说明文档,很多东西看了就忘了. 我在看文档的时候,是跟着文档上面来做的. 这样边看边做,效果还不错哈 下面就是我的第一个demo 先看看效果: ...

随机推荐

  1. Mac开发者常用的工具

    http://www.oschina.net/news/53946/mac-dev-tools

  2. MFC多线程详细讲解(转)

    一.问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX ...

  3. CSS选择器与jQuery选择器的异同:一些特殊的选择器

    在CSS3选择器标淮草案定义的选择器语法中,jQuery支持相当完整的一套子集,同时还添加了一些非标准但很有用的伪类.下面是一些jQuery扩展的选择器:(来自http://www.cnblogs.c ...

  4. 获取hyper-v和vmware虚机状态

    在vmware的PowerCLI和微软的scvmm的PowerShell中可以通过Get-VM命令来获取虚拟机的信息.下面我们用代码的方式去实现,代码相关类方法就是对命令的封装. vmware api ...

  5. Fiddler2抓包

    https://www.cnblogs.com/conquerorren/p/8472054.html https://www.cnblogs.com/conquerorren/p/8472218.h ...

  6. SQL SERVER先判断视图是否存在然后再创建视图的语句

    如果我们的语句为: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 IF NOT EXISTS(SELECT 1 FROM sys.views WHERE name='Report_I ...

  7. Open Interface Service WCF三种通信模式

    WCF三种通信模式 一.请求响应模式: 概念:客户端发送请求,一直等待服务端响应,在此期间处于等待(假死)状态:直到服务器响应,才能继续执行其他的操作: 即使返回值是void 也属于请求与答复模式. ...

  8. 深入了解java虚拟机(JVM) 第五章 如何判断对象为垃圾对象

    本章开始学习垃圾回收的过程,垃圾回收的过程首先就是要确定对象是否是垃圾对象,如果是垃圾对象,垃圾回收器才会进行回收.垃圾回收主要又两种算法:引用计数算法和可达性分析算法. 一.引用计数算法 引用计数算 ...

  9. [ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据

    主类 HTTPSendPHP.as package { import com.JPEGEncoder.JPGEncoder; import com.fylib.httpRequest.HttpRequ ...

  10. python+requests接口自动化测试框架实例详解

    python+requests接口自动化测试框架实例详解   转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...