CRYSTAL net样式
报表的运用,分为两种方式: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