zoukankan      html  css  js  c++  java
  • c# 水晶报表使用说明

    水晶报表介绍

    水晶报表是 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(1, false, 0, 0);
                    }
                }
                this.crv.ReportSource = cr;
            }
        }
    }

    结尾

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

  • 相关阅读:
    linux less命令用法
    Spark-RDD 模型 以及运行原理
    Spark 架构原理介绍 以及 job、task、stag 概念
    Kafka 基本概念以及框架介绍
    负载均衡- TCP/ IP 基础知识
    JAVA多线程和并发基础面试题
    Java并发使用--线程池
    Java基础--并发编程
    事务实现原则(一) 事务的改变以及JDBC事务的设计
    Spark RDD Transformation和Action
  • 原文地址:https://www.cnblogs.com/aitong/p/10717786.html
Copyright © 2011-2022 走看看