当前位置:首页 > Web开发 > 正文

转载请附上原文出处链接及本声明

2024-03-31 Web开发

报表的运用,分为两种方法:pull和push

拉和推模型
为了向开发人员供给最灵活的数据访谒要领,Crystal Reports 数据库驱动措施被设计为可同时供给数据访谒的拉模型和推模型。

拉模型

在拉模型中,驱动措施将连接到数据库并按照需要将数据“拉”进来。使用这种模型时,与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 自己措置惩罚惩罚,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型。

推模型

相反,推模型需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该东西通报给报表。该要领使您可以将连接共享置入应用措施中,并在 Crystal Reports 收到数据之前先将数据筛选出来。


此中保举使用push,因为它的性能较pull好,具体的可以到网上去检察相关内容描述。

在此,我只是对push进行描述;(小我私家的操纵挨次,不过只能说明是一个要领,也应该有其他要领)

首先,创建一个数据集,假如是(DataSet1.xsd),设置好数据集以后,再创建crystralreport1.rpt,在crystralreport.rpt中设置好数据连接,并且把报表设计好以后,接着就要创建一个web窗体,(例如是Crystral_Use.aspx),此中页面中要拖进一个CrystalReportViewer控件,随后进行下面的操纵:

其次,引用对应的定名空间using CrystalDecisions.Shared;和 using CrystalDecisions.CrystalReports.Engine;

最后,在crystral-use.aspx页面中进行下面的编程:

CrystalReport1 crvs=new CrystalReport1();//实例化报表

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处安排用户代码以初始化页面

string connstring="server=.; database=BMSShopping ;uid =sa; pwd=123456;"; //连接数据库        SqlConnection conn=new SqlConnection(connstring);

SqlDataAdapter da=new  SqlDataAdapter();

da.SelectCommand=new SqlCommand();

da.SelectCommand.CommandText="select top 3 * from orders";//从数据库中检索数据        da.SelectCommand.Connection=conn;

conn.Open();

DataSet1 ds=new DataSet1();//应用自界说的一个数据集

da.Fill(ds,"Orders");

crvs.SetDataSource(ds);

this.CrystalReportViewer1.ReportSource=crvs;

}

这样,一个简单的crystralreport就应用完了;

扩展一下:

如果你想把报表导出,那么你就继续进行下面的操纵设置:

首先,还是要在上面的根本上,拖放一个dropdownlist控件,以便能选择导格外式:

随后,编写代码:

//导出报表

CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new    CrystalDecisions.Shared.DiskFileDestinationOptions();

crvs.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;

switch (ddlFormat.SelectedItem.Text)

{

case "RTF格局":

crvs.ExportOptions.ExportFormatType =   CrystalDecisions.Shared.ExportFormatType.RichText;//

DiskOpts.DiskFileName = "d:\\Output.rtf";//导出路径

this.Response.Write("导出RTF格局告成!");

break;

case "PDF格局":

crvs.ExportOptions.ExportFormatType =   CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;//

DiskOpts.DiskFileName = "d:\\Output.pdf";//导出路径

this.Response.Write("导出PDF格局告成!");

break;

case "DOC格局":

crvs.ExportOptions.ExportFormatType =   CrystalDecisions.Shared.ExportFormatType.WordForWindows;//

DiskOpts.DiskFileName = "d:\\Output.doc";//导出路径

this.Response.Write("导出DOC格局告成!");

break;

case "EXCEL格局":

crvs.ExportOptions.ExportFormatType =   CrystalDecisions.Shared.ExportFormatType.Excel;//

                DiskOpts.DiskFileName = "d:\\Output.xls";//导出路径

this.Response.Write("导出EXCEL格局告成!");

break;

default:

break;

}

crvs.ExportOptions.DestinationOptions = DiskOpts;

crvs.Export();

}

至此,所有有关报表打印实现就完了,也许有其他更好的操纵或者要领,但愿大家不吝见教。至于在visual studio 2005中水晶报表操纵,,比起visual studio 2003中要简单的多,通过拖放操纵就可以实现。而且visual studio 2005中对照简单,而且美不雅观也有升级。
————————————————
版权声明:本文为CSDN博主「yingzhaom」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文来由链接及本声明。
原文链接:https://blog.csdn.net/yingzhaom/article/details/7775491

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32110.html