欢迎光临
我们一直在努力

VC# .Net中浏览Crystal Report-.NET教程,C#语言

建站超值云服务器,限时71元/月

大名鼎鼎的 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 files\microsoft visual studio .net\crystal reports\samples\reports\feature examples\chart.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.point(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(),"错误"); //处理异常错误

}

}

}

}

事实上,将报表绑定到crystalreportviewer控件有很多方法。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » VC# .Net中浏览Crystal Report-.NET教程,C#语言
分享到: 更多 (0)

相关推荐

  • 暂无文章