c#

位置:IT落伍者 >> c# >> 浏览文章

VC#.Net中浏览Crystal Report


发布日期:2021年08月27日
 
VC#.Net中浏览Crystal Report
大名鼎鼎的 Crystal Reports(水晶报表)已内嵌为微软 Visual Studio NET的标准报表工具同时升级到 Crystal Reports for Visual Studio NET它的优点是NET 平台能够轻松创建交互式的高质量显现的报表内容这也是 Crystal Reports 长期以来所具有的主要优势使用 Crystal Reports for Visual Studio NET可以在 Web 平台和 Windows 平台上承载报表并将 Crystal 报表作为报表 Web 服务在 Web 服务器上发布利用Crystal Report 创建的Web应用程序使用户可以深化图表并根据需要筛选信息NET 中图表实际上就是一个与应用程序中其他控件进行交互的 Crystal 报表在这里我向大家介绍如何在 Windows 窗体应用程序中浏览水晶报表

设计步骤

软件环境要求系统已安装Visual Studio Net 集成开发系统仅装有 Net Framework SDk 不能实现本例效果成为 Net Framework SDK 没有水晶报表控件

新建一个 Visual C# 项目 Windows 应用程序设置Form的Text=水晶报表浏览器StartPosition=CenterScreen //程序开始出现在屏幕中央其它属性均保持默认

从工具箱拖入一个CrystalReportViewer一个Button一个openFileDialog到窗体

整个设计器的窗体布局只需将button置于窗体底边中部不再需要其它多余布局

设置crystalReportViewer的属性如下

thiscrystalReportViewerDock = SystemWindowsFormsDockStyleFill;

//停靠方式为充满整个窗体

//展开+DockPadding

thiscrystalReportViewerDockPaddingBottom = ;

//底部空出放置Button的区域

thiscrystalReportViewerDockPaddingLeft = ;

thiscrystalReportViewerDockPaddingRight = ;

thiscrystalReportViewerDockPaddingTop = ;

thiscrystalReportViewerReportSource = null;

//先不载入报表资源

设置button的属性如下

thisbuttonAnchor = SystemWindowsFormsAnchorStylesBottom;

//与窗体的下边保持固定

thisbuttonText = 打开报表;

openFileDialog是打开文件的控件设置其属性如下

thisopenFileDialogFilter

= Crystal Report (*rpt)|*rpt|所有文件(**)|**;

//提供打开文件对话框的文件类型

默认类型就是此字符串的最前一种定义的类型

thisopenFileDialogTitle = 打开水晶报表;

//打开文件对话框的标题

布局效果图如下

双击button添加button_Click点击事件

private void button_Click(object sender SystemEventArgs e)

{

try

{

if(openFileDialogShowDialog()==DialogResultOK)

thiscrystalReportViewerReportSource = @openFileDialogFileName;

//加载水晶报表将报表文件绑定到CrystalReportView 控件;

}

catch(Exception error)

{

MessageBoxShow(errorToString()错误);

}

}

OK!按Ctrl+F运行吧

可以浏览你系统内现有的报表实例

\Program Files\Microsoft Visual Studio NET\Crystal Reports\Samples\Reports\Feature Examples\Chartrpt

using System;

using SystemDrawing;

using SystemCollections;

using SystemComponentModel;

using SystemWindowsForms;

using SystemData;

namespace WindowsApplication

{

/// <summary>

/// Form 的摘要说明

/// </summary>

public class Form : SystemWindowsFormsForm

{

private CrystalDecisionsWindowsFormsCrystalReportViewer crystalReportViewer;

private SystemWindowsFormsButton button;

private SystemWindowsFormsOpenFileDialog openFileDialog;

/// <summary>

/// 必需的设计器变量

/// </summary>

private SystemComponentModelContainer components = null;

public Form()

{

//

// Windows 窗体设计器支持所必需的

//

InitializeComponent();

//

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

//

}

/// <summary>

/// 清理所有正在使用的资源

/// </summary>

protected override void Dispose( bool disposing )

{

if( disposing )

{

if (components != null)

{

componentsDispose();

}

}

baseDispose( disposing );

}

#region Windows Form Designer generated code

/// <summary>

/// 设计器支持所需的方法 不要使用代码编辑器修改

/// 此方法的内容

/// </summary>

private void InitializeComponent()

{

thiscrystalReportViewer = new

CrystalDecisionsWindowsFormsCrystalReportViewer();

thisbutton = new SystemWindowsFormsButton();

thisopenFileDialog = new SystemWindowsFormsOpenFileDialog();

thisSuspendLayout();

//

// crystalReportViewer

//

thiscrystalReportViewerActiveViewIndex = ;

thiscrystalReportViewerDock

= SystemWindowsFormsDockStyleFill;

thiscrystalReportViewerDockPaddingBottom = ;

thiscrystalReportViewerDockPaddingLeft = ;

thiscrystalReportViewerDockPaddingRight = ;

thiscrystalReportViewerDockPaddingTop = ;

thiscrystalReportViewerName = crystalReportViewer;

thiscrystalReportViewerReportSource = null;

thiscrystalReportViewerSize = new SystemDrawingSize( );

thiscrystalReportViewerTabIndex = ;

//

// button

//

thisbuttonAnchor = SystemWindowsFormsAnchorStylesBottom;

thisbuttonLocation = new SystemDrawingPoint( );

thisbuttonName = button;

thisbuttonTabIndex = ;

thisbuttonText = 打开报表;

thisbuttonClick += new SystemEventHandler(thisbutton_Click);

//

// openFileDialog

//

thisopenFileDialogFilter = Crystal Report (*rpt)|*rpt|所有文件(**)|**;

thisopenFileDialogTitle = 打开水晶报表;

//

// Form

//

thisAutoScaleBaseSize = new SystemDrawingSize( );

thisClientSize = new SystemDrawingSize( );

thisControlsAddRange(new SystemWindowsFormsControl[] {

thisbutton

thiscrystalReportViewer});

thisName = Form;

thisStartPosition = SystemWindowsFormsFormStartPositionCenterScreen;

thisText = 水晶报表浏览器;

thisResumeLayout(false);

}

#endregion

/// <summary>

/// 应用程序的主入口点

/// </summary>

[STAThread]

static void Main()

{

ApplicationRun(new Form());

}

private void button_Click(object sender SystemEventArgs e)

{

try

{

if(openFileDialogShowDialog()==DialogResultOK)

thiscrystalReportViewerReportSource = @openFileDialogFileName;

//加载水晶报表将资源报表绑定到水晶报表查看器

}

catch(Exception error)

{

MessageBoxShow(errorToString()错误); //处理异常错误

}

}

}

}               

上一篇:自学.NET之路-C#编程之基础总结

下一篇:关于.net的debug和trace随谈