初学水晶报表,一头雾水,都是希望先找个简单的示例型的文章看看,本篇就非常的适合(仅适合接触水晶报表但是一个都没有写过的同仁)。

本示例环境:windows2003、vs.net2003、Sql Server2000、水晶报表为vs.net2003自带的。
示例程序为winform下读取sql server2000数据库中一表,使用水晶报表显示列表,非常简单的一个,下面就开始了。

首先建立数据库,生成表的sql语句如下:

CREATE   TABLE   [ dbo ] . [ test ]  (
  [ id ]   [ decimal ] ( 18 ,  0 )  IDENTITY  ( 1 ,  1 )  NOT   NULL  ,
  [ name ]   [ varchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
  [ card ]   [ varchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
  [ createdate ]   [ datetime ]   NULL  
)  ON   [ PRIMARY ]
GO

ALTER   TABLE   [ dbo ] . [ test ]   ADD  
  CONSTRAINT   [ PK_test_1 ]   PRIMARY   KEY    CLUSTERED  
 (
   [ id ]
 )   ON   [ PRIMARY ]  
GO

打开vs.net2003,新建立一个C#的winform项目。
程序分3个文件,分别为:Form1.cs、DataSetTest.xsd、CrystalReportTest.rpt

Form1.cs:建立项目时已经生成;
DataSetTest.xsd:该文件为数据集文件,建立完成后在文件中点击“服务器资源管理器”,这样在左边出现了带有“数据连接”的菜单,然后试图展开下面的结点时提示需要一些连接数据库的参数,包括选择数据名称,sa用户和密码等,连接成功后展开“表”的结点,选择你建立的表,将表拖到“DataSetTest.xsd”文件中,这样会自动建立了一个表结构的数据集,然后就建立完成了,生成一下项目,如果不生成直接往下做的话在下一步的建立报表文件时就会遇到问题(可以不生成来试一下就明白了)。
CrystalReportTest.rpt:报表文件,在项目中添加CrystalReport文件,添加时会出现建立向导,首先选择“使用报表专家”,“确定”后展开“项目数据”,展开“ADO.NET数据集”,展开“datasettest”,看到了刚才建立的表“test”,双击就添加到了右边的“报表中的表”中,点“下一步”,再点“全部添加”,点“下一步”,然后点“完成”,这样文件已经建立;下面是设计报表的表样,设计的表样如下图:

这样需要建立的文件已经建立完成,下面是编写代码了。
在Form1.cs文件中添加crystalReportViewer控件,用来显示水晶报表的;再添加“生成报表”按钮,代码全部如下:

using  System;
using  System.Drawing;
using  System.Collections;
using  System.ComponentModel;
using  System.Windows.Forms;
using  System.Data;
using  System.Data.SqlClient;

namespace  WinApp
{
    /**//// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        private CrystalDecisions.Windows.Forms.CrystalReportViewer crystalReportViewer1;
        private System.Windows.Forms.Button button1;
        /**//// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.Container components = null;

        public Form1()
        {
            //
            // Windows 窗体设计器支持所必需的
            //
            InitializeComponent();

            //
            // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
            //
        }

        /**//// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null) 
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
        /**//// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.crystalReportViewer1 = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
            this.button1 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // crystalReportViewer1
            // 
            this.crystalReportViewer1.ActiveViewIndex = -1;
            this.crystalReportViewer1.DisplayGroupTree = false;
            this.crystalReportViewer1.Location = new System.Drawing.Point(0, 40);
            this.crystalReportViewer1.Name = "crystalReportViewer1";
            this.crystalReportViewer1.ReportSource = null;
            this.crystalReportViewer1.Size = new System.Drawing.Size(736, 504);
            this.crystalReportViewer1.TabIndex = 0;
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(280, 8);
            this.button1.Name = "button1";
            this.button1.TabIndex = 1;
            this.button1.Text = "生成报表";
            this.button1.Click += new System.EventHandler(this.button1_Click);
            // 
            // Form1
            // 
            this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
            this.ClientSize = new System.Drawing.Size(736, 541);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.crystalReportViewer1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);

        }
        #endregion

        /**//// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main() 
        {
            Application.Run(new Form1());
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            CrystalReportTest cr1 = new CrystalReportTest();
        
            cr1.SetDataSource(GetDs());

            this.crystalReportViewer1.ReportSource=cr1;
        }

        //该函数返回DataSetTest数据集中表的数据格式的数据集合
        public DataSetTest.testDataTable GetDs()
        {
            //创建DataSetTest数据集中的表的对象
            DataSetTest.testDataTable ds = new WinApp.DataSetTest.testDataTable();    
            
            string strSql = "select * from test";
            string strConnString = "server=.;database=test;user id=sa;pwd=sa;";

            SqlConnection conn = new SqlConnection(strConnString);
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(strSql,conn);

            da.Fill(ds);    //填充数据集
            conn.Close();
            return ds;
        }
    }
}

网上还有一篇李洪根写的,地址如下:
http://www.microsoft.com/china/community/Column/26.mspx

winform下制作第一张水晶报表相关推荐

  1. 利用报表工具制作一张简单报表的主要流程

  2. 水晶报表技术(12)——一个投票系统水晶报表应用

        前一段时间,公司需要做一个在线的调查投票系统,目的是统计公司能力等级指数,统计的能力级别分三大类,分别为一级能力要素,二级能力要素,三级能力要素,不同的一级能力要素下面分若干的二级能力要素,每 ...

  3. Topic 3. SCI文章第一张表格--基线表格

    当我们拿到需要建模的数据时,总是会觉得数据混乱不堪,尤其是数据库分析时,或者实际的临床数据,其中各种指标都存在,比如临床上基本上都包含的性别,年龄,肿瘤的临床分期,生存时间(PFS/DFS/OS)等信 ...

  4. 0.进校的第一张Excel表:“住宿分布表” ——《Excel“智能化”之路》 系列文章

    <Excel"智能化"之路> 系列文章 系列目录    0.进校的第一张Excel表:"住宿分布表" 系列前言    转眼间就大二了,感觉自己还没学 ...

  5. 用水晶报表制作张坤需要的报表格式

    #1楼 58.1.130.* sosokun@hotmail.com 2007-11-23 16:12 zhangkun [未注册用户]  旋哥 帮忙啊  水晶报表会用吗 VS.2005中的水晶报表控 ...

  6. 水晶报表的制作(图表)

    在这个例子中,我们设想的应用要为一个销售部门制作一份报表,管理者可以查看某段时间之内的销售情况,以列表或者折线图的形式反映出销售的趋势.我们将使用SQL Server 2000做为数据库,使用VB.N ...

  7. 如何用FineReport制作一张报表(一)

    1. 描述 这篇文档通过制作一张简单普通报表,让大家可以快速了解 FineReport 报表的制作流程. 1.1 报表设计流程图 1.2 第一张报表效果 在制作这张简单普通报表之前,我们先来看一下报表 ...

  8. rpt水晶报表制作过程

    原文:rpt水晶报表制作过程 最近公司安排一个以前的项目,里面需要用到水晶报表,由于原来做这个项目的同事离职,所在公司的同事报表做成了rdlc类型的,而这类报表在加载的时候很难动态的从数据库加载数据, ...

  9. winform定义数据源名称_WinForm中使用CrystalReport水晶报表——基础,分组统计,自定义数据源...

    开篇 本篇文章主要是帮助刚开始接触CrystalReport报表的新手提供一个循序渐进的教程.该教程主要分为三个部分1)CrystalReport的基本使用方法:2)使用CrystalReport对数 ...

最新文章

  1. 【Ubuntu】apt-get命令小结
  2. Gartner 「RPA市场竞争格局」:中国厂商首次进入国际视野
  3. HP小型机superdome配置MC双机、PV、VG、LV初体验
  4. [Apache Tomcat]server.xml文件详解
  5. 程序员计算器HEX、EDC、OCT等等的意思
  6. [C# 项目实战]: 制作一个备忘录(经典)
  7. Kali linux 渗透测试技术之搭建WordPress Turnkey Linux及检测WordPress 应用程序漏洞
  8. 小熊派开发实践丨小熊派+合宙Cat.1接入云服务器
  9. java keydown_键盘事件keydown、keypress、keyup随笔整理总结
  10. 数组赋偶数值并求出平均值
  11. 【Xamarin.iOS】使用iOS 11进行大型游戏
  12. jq过滤替换敏感词_如何用python简单过滤敏感信息
  13. 360手柄摇杆漂移修复_「超逸酷玩」电脑游戏还用在用键盘?不妨试试斯巴达2手柄无线版...
  14. python教程 马哥_python教程马哥
  15. miui系统精简工具(免root删除内置软件)
  16. 舞蹈链算法与数独求解
  17. java相关优秀博文收藏
  18. 域适应(Domain Adaptation)综述
  19. 编译、汇编、翻译原理知识概括
  20. esp32 Micropython驱动ST7735 1.8寸TFT屏幕 中文显示;时间显示、网络network实时时间获取utptime;urequests、upip等包安装

热门文章

  1. 聊聊今天身边的几件事情
  2. 【人工智能】AGI 通用人工智能基础概念、实现原理、挑战和发展前景
  3. 洛谷 P1169 [ZJOI2007]棋盘制作
  4. Odoo15官方文档 开发 核心教程 第4章:模型和基本字段
  5. Mac 安装 miniconda
  6. Django入门-2:创建第一个Django项目
  7. 如何在照片上涂鸦写字?分享几种照片涂鸦方法
  8. 特别推荐BLOG(二) 纯洁的微笑 的博客
  9. time.js 时间函数库
  10. Windows10安装Pycharm