设为首页
加入收藏
联系我们
首页 基础教程 技术文档 实例分析 数 据 库 疑难杂症 ASP.NET 七夕许愿树 技术论坛
最新文章
  .NET上传图片加文字…
 在vs.net bate…
 C#中利用正则表达式实现…
 Visual C#的SQ…
 关于使用存储过程创建分页
 通用分页显示查询存储过程
 大数据量的分页
 什么是web.confi…
 ASP.NET 配置文件…
 对“三层结构”的深入理解…
 多个关键字的查询问题
 VB和C# 语法对比图 …
 C#基础全接触
 用C#压缩和修复Acce…
 C#中的类型相等与恒等(…
推荐文章
 关于C#中的REF和黓认…
 读书笔记c#高级编程 委…
 【算法】C#快速排序类
 Visual C#的SQ…
 C#中调用API
 Infragistics…
 C#接口转换
 C#读取设备信息
 用.net操作word
 C# MessageBo…
 Visual C#中的数…
 雅虎公司C#笔试题,看看…
 C#.NET使用NHib…
 .net学习之运算符重载…
 Visual C# 3.…
热门文章
 ADO.Net与ADO在…
 开发ASP.NET下的M…
 用C#+XMI技术进行U…
 什么是虚拟机?
 C#基础全接触
 C#中利用正则表达式实现…
 雅虎公司C#笔试题,看看…
 用Visual C# 2…
 C#学习第一天
 C#语言初级入门(1)
 VB和C# 语法对比图 …
 远程重启计算机(C#)
 什么是B/S三层?
 Visual C#的SQ…
 Visual C#常用函…
VC#中使用Crystal Report
阅读正文 文字大小:增大 减小  文字行距:增大 减小   双击自动滚屏
本文由中国C#技术学习中心整理  如果你对本文有不明之处请到技术论坛讨论!

大名鼎鼎的 Crystal Reports(水晶报表)已内嵌为微软 Visual Studio .NET的标准报表工具,同时升级到 Crystal Reports for Visual Studio .NET.它的优点是:1、在 .NET 平台能够轻松创建交互式的、高质量显现的报表内容,这也是 Crystal Reports 长期以来所具有的主要优势;2、使用 Crystal Reports for Visual Studio .NET,可以在 Web 平台和 Windows 平台上承载报表,并将 Crystal 报表作为报表 Web 服务在 Web 服务器上发布;3、利用Crystal Report 创建的Web应用程序,使用户可以深化图表并根据需要筛选信息.在 .NET 中,图表实际上就是一个与应用程序中其他控件进行交互的 Crystal 报表.在这里我向大家介绍如何在 Windows 窗体应用程序中浏览水晶报表.
设计步骤:
1、软件环境:要求系统已安装Visual Studio .Net 集成开发系统,仅装有 .Net Framework SDk 不能实现本例效果,成为 .Net Framework SDK 没有水晶报表控件.
2、新建一个 Visual C# 项目 Windows 应用程序,设置Form1的Text="水晶报表浏览器",StartPosition=CenterScreen //程序开始出现在屏幕中央,其它属性均保持默认;
3、从工具箱拖入一个CrystalReportViewer,一个Button,一个openFileDialog,到窗体.
整个设计器的窗体布局只需将button1置于窗体底边中部,不再需要其它多余布局.
设置crystalReportViewer1的属性如下:
this.crystalReportViewer1.Dock = System.Windows.Forms.DockStyle.Fill;
//停靠方式为充满整个窗体//展开+DockPadding
this.crystalReportViewer1.DockPadding.Bottom = 50;
//底部空出放置Button的区域
this.crystalReportViewer1.DockPadding.Left = 5;

this.crystalReportViewer1.DockPadding.Right = 5;

this.crystalReportViewer1.DockPadding.Top = 5;

this.crystalReportViewer1.ReportSource = null;
//先不载入报表资源
设置button1的属性如下:
this.button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
//与窗体的下边保持固定
this.button1.Text = "打开报表";
openFileDialog1是打开文件的控件,设置其属性如下:
this.openFileDialog1.Filter = "Crystal Report ( *.rpt )|*.rpt|所有文件( *.* )|*.*";
//提供打开文件对话框的文件类型,默认类型就是此字符串的最前一种定义的类型
this.openFileDialog1.Title = "打开水晶报表";
//打开文件对话框的标题 
布局效果图如下:

4、双击button1,添加button1_Click点击事件:
private void button1_Click( object sender, System.EventArgs e )
{
    try 
    {
        if( openFileDialog1.ShowDialog( )==DialogResult.OK )
        this.crystalReportViewer1.ReportSource = @openFileDialog1.FileName;
        //加载水晶报表,将报表文件绑定到CrystalReportView 控件;
    }
    catch( Exception error ) 
    {
        MessageBox.Show( error.ToString( ),"错误" );
    }
}

5、OK!按Ctrl+F5运行吧.
可以浏览你系统内现有的报表实例:
...Program FilesMicrosoft Visual Studio .NETCrystal ReportsSamplesReportsFeature ExamplesChart.rpt

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WindowsApplication10
{
    /// <summary> 
    /// Form1 的摘要说明. 
    /// </summary> 
    public class Form1 : System.Windows.Forms.Form 
    {
        private CrystalDecisions.Windows.Forms.CrystalReportViewer crystalReportViewer1;
       
        private System.Windows.Forms.Button button1;
       
        private System.Windows.Forms.OpenFileDialog openFileDialog1;
       
        /// <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);
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容.
        /// </summary>
        private void
        InitializeComponent( )
        {
            this.crystalReportViewer1 = new
            CrystalDecisions.Windows.Forms.CrystalReportViewer( );
           
            this.button1 = new System.Windows.Forms.Button( );
           
            this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog( );
           
            this.SuspendLayout( );
            //
            // crystalReportViewer1
            //
            this.crystalReportViewer1.ActiveViewIndex = -1;
           
            this.crystalReportViewer1.Dock= System.Windows.Forms.DockStyle.Fill;
           
            this.crystalReportViewer1.DockPadding.Bottom = 50;
           
            this.crystalReportViewer1.DockPadding.Left = 5;
           
            this.crystalReportViewer1.DockPadding.Right = 5;
           
            this.crystalReportViewer1.DockPadding.Top = 5;
           
            this.crystalReportViewer1.Name = "crystalReportViewer1";
           
            this.crystalReportViewer1.ReportSource = null;
           
            this.crystalReportViewer1.Size = new System.Drawing.Size( 292, 273 );
           
            this.crystalReportViewer1.TabIndex = 0;
            //
            // button1
            //
            this.button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
           
            this.button1.Location = new System.Drawing.Po
            int( 104, 240 );
           
            this.button1.Name = "button1";
           
            this.button1.TabIndex = 1;
           
            this.button1.Text = "打开报表";
           
            this.button1.Click += new System.EventHandler( this.button1_Click );
            //
            // openFileDialog1
            //
            this.openFileDialog1.Filter = "Crystal Report ( *.rpt )|*.rpt|所有文件( *.* )|*.*";
           
            this.openFileDialog1.Title = "打开水晶报表";
            //
            // Form1
            //
            this.AutoScaleBaseSize = new System.Drawing.Size( 6, 14 );
           
            this.ClientSize = new System.Drawing.Size( 292, 273 );
           
            this.Controls.AddRange( new System.Windows.Forms.Control[]
            {
                this.button1,
                this.crystalReportViewer1
            }
            );
           
            this.Name = "Form1";
           
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
           
            this.Text = "水晶报表浏览器";
           
            this.ResumeLayout( false );
        }
        #endregion
        /// <summary>
        /// 应用程序的主入口点.
        /// </summary>
        [STAThread]
        static void Main( )
        {
            Application.Run( new Form1( ) );
        }
       
        private void button1_Click( object sender, System.EventArgs e )
        {
            try
            {
                if( openFileDialog1.ShowDialog( )==DialogResult.OK )
                this.crystalReportViewer1.ReportSource = @openFileDialog1.FileName;
                //加载水晶报表,将资源报表绑定到水晶报表查看器
            }
            catch( Exception error )
            {
                MessageBox.Show( error.ToString( ),"错误" );
                //处理异常错误
            }
        }
    }

本文由中国C#技术学习中心整理  如果你对本文有不明之处请到技术论坛讨论!

中国C#技术交流QQ群:6337034  10976424  9383681  35248582  35248645
版权所有:中国C#技术学习中心 Copyright © 20010-20012
建议浏览分辨率使用:1024*768分辨率
粤ICP备05002251号