C__WinForm实践开发教程-chp7水晶报表技术

合集下载

水晶报表的使用

水晶报表的使用

3.3 Pull模式的使用
首先创建rpt文件,并使用水晶报表设计接 口设置一些必须的数据连接。 拖放一个 CrystalReportViewer控件至 aspx页面,设置它的属性指定我们上一步 创建的.rpt文件。 在代码中调用DataBind方法。
创建 .rpt 文件:
1)
2) 3) 4) 5)
使用Pull模式导出报表
private void btnOutput_Click(object sender, System.EventArgs e) { CrystalReport1 myReport = new CrystalReport1(); CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new CrystalDecisions.Shared.DiskFileDestinationOptions(); myReport.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile; myReport.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDoc Format; DiskOpts.DiskFileName = "c:\\Output.pdf"; myReport.ExportOptions.DestinationOptions = DiskOpts; myReport.Export(); }
6)
7) 8)
在右击“解决方案游览器”,在弹出的菜单中选择“添加” --“添加新项”-->“Crystal Report” 在“Crystal Report 库”中选择“作为空白报表”单选按 钮,最后单击“确定”。 出现水晶报表设计器。 右击报表中的“详细资料区”,选择“数据库”->“添加/ 删除数据库..." 在弹出的“数据库专家”中,扩展“OLE DB(ADO)”选项, 此时会弹出另外一个“OLE DB(ADO)”窗口。 在 "OLE DB (ADO)" 弹出窗口中,选择 "Microsoft OLE DB Provider for SQL Server" 然后 "Next" 指定连接的信息(选择Pubs库) 单击“下一步”,最后单击“完成”按钮。

C#.NET下使用水晶报表

C#.NET下使用水晶报表

1。

第一步是添加新项CrystalReport12。

在CrystalReport1.rpt面页右键选择:”数据库” ”添加/删除数据库”出现下面对话框:然后点开OLE DB(ADO)的加号,将弹出选择数据库的对话框其中”项目数据”里面的”当前连接”显示的就是OLE DB(ADO)的连接,这样就可以将表添加到右边的”选定的表”中了(切记:不要既从”OLE DB”中选表或命令又从”当前连接”中选,如果你用了数据集,也是一样的道理,否则全提示出”登陆失败”的错误!)3。

字段资料管理器里面”数据库字段”里把字段直接拖到CrystalReport.rpt里面了.布置好布局.4。

回到WebForm1.aspx页面,选择控件CrystalReportViewer将其放到页面上。

5。

代码using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn); //strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1();cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn); //strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1();cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn);//strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1(); cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}。

水晶报表使用简单教程

水晶报表使用简单教程

6. 在报表设计器中调整需要显示的字段的位置、宽度等。
7. 在窗口中添加代码。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim oRpt As New CrystalReport1()
2. 展开“ 数据集”文件夹。
3. 选择所需数据集对象。
例如,如果当时使用的是从项目“WindowsApplication1”的架构文件“Dataset1.xsd”中生成的数据集对象,则应该选择“WindowsApplication1.Dataset1”。
4. 选择要向报表中添加的表,和使用其他数据源一样。
5. 单击“保存 Dataset1.xsd”来保存“Dataset1.xsd”文件。
6. 在“生成”菜单上,单击“生成”为项目生成数据集对象。
数据集对象提供数据的描述,从它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“数据库专家”从 数据集对象添加表。
水晶报表使用简单教程
分类: 数据库开发技术
水晶报表使用简单教程[@more@]水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家。
一、在使用自带的水晶报表时,请注册,否则只能使用30次
daDetails.Fill(dsdataSet, "Order Details")
'使用“报表引擎”对象模型将填充的数据集,传递给报表

WinForm中使用CrystalReport水晶报表——基础,分组统计,自定义数据源

WinForm中使用CrystalReport水晶报表——基础,分组统计,自定义数据源

WinForm中使⽤CrystalReport⽔晶报表——基础,分组统计,⾃定义数据源开篇本篇⽂章主要是帮助刚开始接触CrystalReport报表的新⼿提供⼀个循序渐进的教程。

该教程主要分为三个部分1)CrystalReport的基本使⽤⽅法;2)使⽤CrystalReport对数据进⾏分组求和;3)CrystalReport如何使⽤⾃定义的数据源(如内存中的DataTable表)三个⽅⾯来写。

相信看懂了这个教程之后,对于⾃⼰项⽬中的实现报表这⼀功能,应该就能轻松的应对了。

⼀ CrystalReport模板的制作及显⽰A模板的制作1、右键【项⽬属性】添加⼀个⽔晶报表(在vs中需要安装CrystalReport模块,不同vs版本下载不同的CrystalReport版本:CrystalReport下载链接:)2、添加报表的设计界⾯如下:⼀个报表包括(报表头,页眉,详细资料,报表尾,页眉)5个基本部分。

3、现在我们需要给新建的报表添加⼀个数据源,右键左边的【数据库字段】选择相应的数据源,进⾏绑定。

我这⾥选择的是sqlserver数据库。

4、输⼊数据库的登录信息,然后选择需要绑定的数据库表,除了绑定数据表之外,还可以绑定sql语句查询的结果,以及存储过程和视图,下⾯给出绑定数据库表格,和绑定sql查询。

1)绑定数据库表格2)点击连接下⾯的【添加命令】绑定sql语句。

5、绑定数据库之后在报表左侧的【字段管理器】中就会出现该表以及sql查询结果的的相应表头字段。

6、把相应的字段在报表视图中进⾏布局。

到此⽔晶报表的模板已经做好了。

注意:页眉中的userName,courseName,score是可以更改。

B模板的显⽰1、⾸先在窗体上拖⼀个CrystalReportView控件作为显⽰报表模板。

2、在form_load事件⾥⾯写如下代码:CrystalReport1 cr = new CrystalReport1();//实例化⼀个报表模板this.crystalReportViewer1.ReportSource = cr;//为报表显⽰控件设置数据源3、运⾏报表设计点丑,但是你可以根基⾃⼰的风格进⾏排版设计,如字体,⼤⼩,颜⾊等啦。

c#水晶报表入门教程:对比FineReport之用户入门

c#水晶报表入门教程:对比FineReport之用户入门

c#水晶报表入门教程:对比FineReport之用户入门水晶报表(crystal report)和FineReport都是很常用的报表工具,这里对比一下它们的用户入门功能。

水晶报表用户入门如下:新用户快速入门下面的教程帮助您在创建第一张报表时即树立信心。

请使用本联机帮助的“目录”选项卡在教程中进行浏览。

在本教程中,当创建“客户列表”报表时,会获得有关该程序的介绍。

“客户列表”是最基本的商务报表,一般含有诸如客户名称、城市、地区和联系人姓名之类的信息。

现在开始学习基本概念:选择数据库,在报表中放置一些字段,然后选择要包含的特定记录。

接下来学习如何:插入和移动数据库字段。

添加标题并设置格式。

在“预览”选项卡中显示报表,以便可以精细调整报表。

使用“选择专家”以确保在报表中只包含所需的数据。

移动对象。

数据分组及排序。

插入图片。

打印报表。

开始之前本教程假设您已经熟悉了Microsoft Windows,并使用Windows环境中常见的惯用术语和过程。

如果您还不熟悉Windows,请参考Microsoft Windows文档,以获得进一步的解释。

程序中所有报表节的默认字体都设置为宋体、10磅。

如果更改了默认字体,或者打印机不支持这种字体,那么字段大小、字段间距和屏幕显示看上去将和教程中的不一样。

本教程是在Microsoft Windows2000平台上设计的。

如果使用不同的平台,则屏幕显示可能略有不同。

如果您还不熟悉Crystal Reports环境,请查看格式化,其中介绍了如何使用网格、自由格式位置、使用准线及格式设置活动。

创建报表1.单击“标准”工具栏上的“新建”。

Crystal Reports库出现。

2.3.库中包含了许多向导,用于指导您创建特定类型的报表。

因为在此处是学习报表的概念,所以可以跳过向导,从头开始创建报表。

在完成本教程的学习之后,可以使用向导创建一些报表,以比较哪种报表创建方法最适合您。

C# 水晶报表详细讲解 代码讲解

C# 水晶报表详细讲解 代码讲解

NET水晶报表首先要从概念入手,水晶报表(Crystal Report)是业内最专业、功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口。

1、.NET水晶报表的好处1)利用水晶报表可以进行数值求平均值,画图等2)利用水晶报表可以把文件导出不同的格式(word等)2、.NET水晶报表的两种格式1)pull模式,不利用DataSet,直接从数据库中取出数据2) push模式,使用DataSet,利用它进行数据的加载和处理等3. .NET水晶报表使用的库1)水晶报表的引擎(CREnging.dll),作用:合并数据,装换格式2)水晶报表设计器(CRDesigner.dll),作用:设计标题,插入数据等3)水晶报表查看控件(CRWebFormViewer.DLL)4)需要引入的命名空间ing CrystalDecisions.CrystalReports.Engine;ing CrystalDecisions.Shared;4、Pull模式下使用水晶报表1)创建rpt文件2)拖放CrystalReportViewer3)绑定5、读取.NET水晶报表文件3.private void ReadCRV(cryatalReportViewer crv)4. {5. openFileDialog dlg=new OpenFileDialog();6.dlg.Title="打开水晶报表文件";7.dlg.Filter="水晶报表文件(*.rpt)|*.rpt|所有文件|*.*";8. if(dlg.showDialog()==DialogResult.OK)9. {10.crv.ReportSource=dlg.FileName;11. }12. }6. B/S下读取报表的文件13.private void ReadCRV(cryatalReportViewer crv,File file)14. {15. string strName=file.PostedFile.FileName;16. if(strName.Trim()!="")17. {18.crv.ReportSource=strName19. Session["fileName"]=strName;20. }21. }在B/S中要防止数据源的丢失22.priavte void Page_Load(object sender,System.EventArgs e)23. {24. if(Session["fileName"]!=null)25. {26.crv.ReportSource=Session["fileName"].ToString();27. }28. }7. 假如直接从数据库中读取数据采用PULL模式可能出现错误(登录的用户名和密码不对)29.private void ReadCRV(CrystalReportViewer crv,CrystalReport cr)30. {31. ReportDocument reportDoc=new ReportDocument();32. reportDoc.Load(Server.MapPath(cr));//要加载的rpt文件的名字33. //解决登录的问题34. TableLogOnInfo logonInfo = new TableLogOnInfo();35. foreach(Table tb in ReportDoc.Database.Tables)36. {37.logonInfo=tb.LogOnInfo;38.logonInfo.ConnectionInfo.ServerName="(loacl)";39.logonInfo.ConnectionInfo.DatabaseName="Pubs";erId="sa";41.logonInfo.ConnectionInfo.Password="";42. tb.ApplyLogOnInfo(logonInfo);43. }44.crv.ReportSource=reportDoc;45. }8. 采用Push模式,直接在数据源读取46.private void BindReport(CrystalReportViewer crv)47. {48. string strProvider="Server=(local);DataBase=pubs;uid=sa;pwd=";49. CrystalReport cr=new CrystalReport();50. DataSet ds=new DataSet();51. SqlConnection conn=new SqlConnection(strProvider);52. conn.open();53. string strSql="select * from jobs";54. SqlDataAdapter dap=new SqlDataAdapter(strSql,conn);55. adp.Fill(ds,"jobs");56. cr.SetDataSource(ds);57.cr crv.ReportSource=cr;58. }9. 导出水晶报表的文件59.private void ExportCrv(CrystalReport cr)60. {61. DiskFileDestionOptions dOpt=new DiskFileDestionOptions();62.cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();63.cr.ExportOptions.ExportFormatType= ExportFormatType.PortableDocFormat;64.dOpt.DiskFileName="C:\output.pdf";65.cr.ExportOptions.DestinationOptions=dOpt;66. cr.Export();67.68. }69. private void ExportCrv(CrystalReport cr,string strType,string strPath)70. {71. DiskFileDestionOptions dOpt=new DiskFileDestionOptions();72.cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();73. switch(strType)74. {75. case "RTF":76.cr.ExportOptions.ExportFormatType=ExportFormatType.RichText;77.dOpt.DiskFileName=strPath;78. break;79. case "PDF":80.cr.ExportOptions.ExportFormatType=ExportFormatType.PortableDocFormat;81.dOpt.DiskFileName=strPath;82. break;83. case "DOC":84.cr.ExportOptions.ExportFormatType=ExportFormatType.WordForWindows;85.dOpt.DiskFileName=strPath;86. break;87. case "XLS":88.cr.ExportOptions.ExportFormatType=ExportFormatType.Excel;89.dOpt.DiskFileName=strPath;90. break;91. default;92. break;93.94. }95.cr.ExportOptions.DestinationOptions=dOpt;96. cr.Export();97.98. }10 B/S下水晶报表的打印99.priavte void PrintCRV(CrystalReport cr)100. {101. string strPrinterName=@"printName";102. PageMargins margins=cr.PrintOptions.PageMargins; 103.margins.bottomMargin = 250;104.margins.leftMargin = 350;105.margins.rightMargin = 350;106.margins.topMargin = 450;107. cr.PrintOptions.ApplyPageMargins(margins);108.cr.PrintOptions.printerName=strPrinterName;109. cr.PrintToPrinter(1,false,0,0)//参数设置为0,表示打印所用页110. }。

c#水晶报表入门教程:对比FineReport之报表填报

c#水晶报表入门教程:对比FineReport之报表填报

c#水晶报表入门教程:对比FineReport之报表填报水晶报表(crystal report)和FineReport都是很常用的报表工具,这里对比一下它们的报表填报功能。

表单表单的回填是水晶报表(Crystal Report)完全不能支持的功能。

FineReport 支持基于纯HTML的表单回填,支持各种主流的浏览器。

编辑风格表单提供普通文本编辑框、复选框、下拉列表框、下拉日历、文件上传等。

自动计算表单可支持类似EXCEL的自动计算功能,程序根据用户的设置在前端生成JavaScript表达式完成自动计算。

自动计算还可跨表,多sheet之间的相互运算。

数据的扩展允许报表单元格与数据库字段间任意对应,并有自动扩展的能力。

支持任意格式的表单回填数据。

直接回填到数据库用户填写的数据,都直接存储到数据库当中,无需中间环节。

多级汇总填报表单的报表同时还是个统计表,单元格数据可以有不同的来源和去向,这样可以先从下级机构汇总出数据再加以补充修改后填写到上级数据库中。

FineReport报表,其制表效率十倍于以国外产品为代表的传统报表工具。

对比点FineReport CrystalReport应用集成后台的环境支持纯JAVA,全支持个别产品只支持Windows前台的环境支持纯HTML,全支持一般仅支持IEJ2EE的应用服务器管理嵌入应用,可充分利用应用服务器各项能力独立服务器,应用服务器能力不可利用J2EE的WEB部署与应用统一部署单独安装部署,操作繁琐J2EE的应用接口丰富齐全,结合紧密通过网络协议,力度不足,统计图常采用古老的CGI方式Java Application集成支持非纯JAVA的不支持.NET的应用集成支持,独立服务支持页面的集成完全随意嵌入独立门户,很困难用户权限控制与应用程序一致独立机制很繁琐IDE集成能力有限支持不支持并发能力较强,4万单元格表在512M内存可并发50个以上基础程序对内存要求很高,并发数较少数据设计多数据源(集)直接间接支持完全分组(多层)支持支持,较繁琐完全交叉(多层)支持,无须专门处理支持,用专门的交叉模型不完全分组/固定行列支持编程准备数据上下分片支持,上下格式可不一致,固定变动混合格式一致的可编程准备数据,否则必须拼子表完成左右分片支持,固定变动混合,直接运算性能高固定列的可编程准备数据,采用DB叉乘性能很差跨行组运算支持,随意通用固定的简单跨行运算,跨组不支持独立格运算支持,随意通用固定几种运算,来自DB的要专门处理主从报表无须子表概念即可完成须用子表,数据无法沟通子表多层任意,格线可对一般两层,横向表不齐可缩放,横纵向均可自动摆位可自动摆位参数与宏均支持仅支持参数报表展现基本方案EXCEL网格式,方便快捷控件式,对齐繁琐导入EXCEL支持不支持套打绘制底图描绘精确度量报表输出格式标准HTML,PDF,word完全不失真的EXCEL,带格式文本PDF,特殊HTML,丧失格式的EXCEL,无格式文本统计图输出格式GIF,JPG,PNG GIF,JPG打印分页分栏横纵向均可,强制分页仅支持纵向,且不可分栏其它打印控制一纸多页,补空行,缩放缩放表单编辑风格文字编辑、下拉选择等不支持自动计算支持合法性检查支持数据库对应随意自动,行/列/交叉均可多级汇总填报支持部署和应用集成WEB部署FineReport报表工具的服务程序以JAR包形式出现,可与应用程序统一打成包一起部署在应用服务器上,安装非常轻松。

winform水晶报表基础操作从入门到精通

winform水晶报表基础操作从入门到精通

水晶报表基础操作从入门到精通1、水晶报表注册码在使用自带的水晶报表时,请注册,否则只能使用30次,水晶报表注册码如下:注册号:6707437608密码:AAP5GKS0000GDE100DS2、中使用水晶报表我们采用下面的几步使用Push模式执行水晶报表:1设计一个DataSet右击“解决方案浏览器”,选择“添加”--“添加新项”-->“数据集”,从“服务器资源管理器”中的“SQL Server”中拖放“Stores”表(位于PUBS数据库中)。

再将此表拖入数据集中。

而 .xsd文件中仅仅包含一个结构图,但是不会有任何数据在里面。

2创建一个.rpt文件同时将其指定给上一步建立的DataSet。

使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。

建立.rpt文件之后,右击“详细资料”-->“添加/删除数据库”,在”数据库专家“窗口中,展开”项目数据“(代替以前的OleDb),展开“数据集”--“DataSet1”,选择“Stores”表。

将“Stores”表添加到“选定的表”中,点击“OK”。

3在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。

使用PULL模式下的方法,建立一个WebForm,添加一个Crystal Report Viewer 控件,并设定其属性,此处与PULL模式下是一致的。

代码如下:private void Page_Load(object sender, System.EventArgs e{DataSet1 ds = new DataSet1(;oCR = new MyReport(;SqlConnection MyConn = newSqlConnection(ConfigurationSettings.AppSettings["SqlConn"];MyConn.Open(;//直接访问数据表//string strSel = "select * from tbtree";//SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn;//MyAdapter.Fill(ds,"tbtree";//使用存储过程SqlCommand cmd = new SqlCommand("display", MyConn;mandType = CommandType.StoredProcedure;SqlDataAdapter MyAdapter = new SqlDataAdapter(cmd;MyAdapter.Fill(ds,"tbtree";oCR.SetDataSource(ds;}注意:在上面的代码中,你得注意一下oRpt是"Strongly Typed"的报表文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档