reportviewer教程
使用报告服务(ReportingServices)创建即席报告应用程序(..
使用报告服务(Reporting Services) 创建即席报告应用程序(Ad Hoc Report Application)摘要:您是 .NET 编程或报告服务(Reporting Services) 的初学者吗?下面介绍如何使用报告服务API 创建 .NET 应用程序以创建和发布报告。
本页内容先决条件使用 2003 创建解决方案将Error_Page 窗体添加到项目中将RDLGenerator 窗体添加到项目中将ManagingReports 窗体添加到项目中小结先决条件此项目要求将Microsoft IIS 6.0、Microsoft Visual 2003、Microsoft SQL Server 2000 和SQL Server 2000 报告服务安装在开发人员机器上。
SQL Server 2000 和报告服务的版本应该是一样的。
例如,如果使用的是SQL Server 2000 Developer Edition,那么也需要使用报告服务开发人员版本。
用于报告的SQL Server 数据源不必在本地,也不要求是同一版本。
用户需要能够访问远程数据源从而加以使用。
报告服务数据库(ReportServer 和ReportServer TempDB)必须在本地。
所有SQL Server(不论是作为数据源引用的还是由报告服务使用的)都必须启用Windows 身份验证或混合模式身份验证。
返回页首使用 2003 创建解决方案1.打开Visual Studio .NET 2003,并在Start Page 上单击New Project。
2.选择Visual Basic Projects, Web Application。
3.将项目命名为CreateReport,并单击OK。
图14.右键单击References,并从快捷菜单上选择Add Reference。
5.在Add Reference 模式窗口上单击Browse。
ReportView报表的使用
ReportView报表的使⽤今天刚接触报表,花了好久时间,⾛了很多弯路,感觉应该写出来和⼤家分享下,前车之鉴。
⾸先创建项⽬,添加新建项⽬—数据—数据集,在⼯具箱中拖⼊DataTable控件,右击控件添加列,设置列名添加新建项⽬—Reporting—报表,得到.relc结尾的⽂件,在右侧报表数据⾥,右击数据集—添加数据集右击—插⼊表(默认为2⾏3列的表),修改名的hander为编号、姓名、年龄,在第⼆列点击选择相对应的数据集⾥的数据*需要注意将Report1.rdlc⽂件的⽣成操作属性改为内容接下来新建⼀个类,写⼊代码public class Person{public int ID { get; set; }public string Name { get; set; }public int Age { get; set; }}接着新建web窗体,在窗体⾥写⼊三个控件:ReportView、button控件和ScriptManager(没什么⽤,但没有这个控件,会报错)<div><asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="386px" Width="619px"></rsweb:ReportViewer><asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="确定" /></div>之后给button控件的点击时间写⼊代码:1 protected void Button1_Click(object sender, EventArgs e)2 {3 /*先清空原来数据集*/4 ReportViewer1.LocalReport.DataSources.Clear();5 /*设置报表⽂件*/6 ReportViewer1.LocalReport.ReportPath = @"D:\task\Exercise1\Learn\Report1.rdlc";7 /*数据集的填充*/8 ReportDataSource rds = new ReportDataSource("DataSet1", loadData());9 /*将数据集添加到本地报表*/10 ReportViewer1.LocalReport.DataSources.Add(rds);11 /*刷新报表显⽰*/12 ReportViewer1.LocalReport.Refresh();13 }注意第6⾏的地址⼀定不能写错,否则会报错最后写⼊l对象包含的数据loadData1 private List<Person> loadData()2 {3 List<Person> per = new List<Person>();4 for (int i = 0; i < 5; i++)5 {6 per.Add(new Person() { ID = i + 1, Name = "name", Age = i + 18 });7 }8 return per;9 }启动程序,完成!。
ReportViewer报表的使用及参数传递
ReportViewer报表的使用及参数传递新建一个Default页面,添加一个ReportViewer.在ReportViewer的最右上角有一个小三角,点击,设计新报表,这时就会跳到Reprot.rdlc里,点击工具箱,表,新建一个DataSet数据集。
新建连接,配置好数据源。
选择一个数据库,测试连接,成功,下一步,写SQK语句select * from table ,完成。
此时,到Report里,会看到网站数据源中就有刚刚的字段了。
现在可以把要显示的字段拖到表的详细信息中,再到Default中,点击小三角,选择报表Report1,此时,一个简单的报表就作好了。
下面再作一个需要参数的报表。
和刚刚一样,新建Default,报表页,数据集。
或是在刚刚的基础上,在DataSet中,点击右键,配置。
可以重写SQL语句。
数据集的查询语句像这样写。
select * from table where state=@state.这里是根据state查询在Report中,点击报表,报表参数,可以添加一个参数,state,,类型为boolean在工具箱中选择一个文本框。
在文本框上点击右键,表达式,选择参数,双击State,确定。
在Default中添加一个TextBox,Button.在 Default的数据源中,选择带参数的那个方法,到定义参数页面,参数源选择control,controlId选择传入参数的Id,如TextBox1,DefaultValue可以给一个默认值,Default页有一个TextBox1,和一个Button引用using Microsoft.Reporting.WebForms;在button的事件里写。
ReportParameter[] p = new ReportParameter[1];p[0] = new ReportParameter("state", TextBox1.Text); this.ReportViewer1.LocalReport.SetParameters(p); this.ReportViewer1.ShowParameterPrompts = false;这样,一个代参数的报表就作好了。
Winfrom的ReportViewer报表控件和.rdlc后缀的报表绑定应用
Winfrom的ReportViewer报表控件和.rdlc后缀的报表绑定应⽤1.创建⼀个winfrom项⽬,从⼯具箱添加ReportViewer控件,命名ReportViewer12.在项⽬中添加⼀个报表,命名Report1.rdlc3.打开刚刚添加的报表,画出模板4.添加⼀个数据集,⽤于报表绑定,命名DataSet15.在数据集中添加⼀个DataTable,命名DataTable1,有3列C1,C2,C36.在报表Report1.rdlc中添加数据集,命名DTTEST7.在报表中绑定数据 数据类型有⽂本,图⽚等等,本例就讲解这两种如何绑定。
1).⽂本:3种⽅式绑定。
A.在⽂本属性-值-输⼊栏中直接输⼊[C2] B.在⽂本属性-值-fx,输⼊=Fields!C2.Value c..在⽂本属性-值-fx-数据集-DTTEST-First(C2) 2).图⽚ a.静态图⽚:图⽚属性,图像源选择嵌⼊,然后点击导⼊。
2).动态图⽚:例如⼆维码、条形码,原理:把图⽚转成byte[],byte[]再转成base64数字编码的等效字符串。
A.图⽚属性,图像源选择数据库,选择对应MIME类型image/jpeg,字段点击fx,输⼊=System.Convert.FromBase64String(Fields!C1.Value)8.详细代码如下:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using Microsoft.Reporting.WinForms;using System.IO;using System.Drawing.Imaging;namespace WindowsFormsApplication1{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){DataTable dt = new DataTable();dt.Columns.Add("C1", typeof(string));//列名必须与数据集的列名⼀致dt.Columns.Add("C2", typeof(string));//列名必须与数据集的列名⼀致dt.Columns.Add("C3", typeof(string));//列名必须与数据集的列名⼀致//动态图⽚绑定string c = Convert.ToBase64String(ImageToBytes("F:\\wenbin\\⼯作⽂件\\SF\\LOGO\\顺丰logo简体.jpg"));dt.Rows.Add(c, "陈先⽣收", "深圳市");//控件绑定报表reportViewer1.LocalReport.ReportPath = @"F:\test\QueueTest\WindowsFormsApplication1\Report1.rdlc";//报表绑定数据集reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DTTEST", dt));this.reportViewer1.RefreshReport();}///<summary>///将图⽚转成byte[]///</summary>///<param name="path">图⽚路径</param>///<returns></returns>public byte[] ImageToBytes(string path){Image image = Image.FromFile(path);//ImageFormat format = image.RawFormat;using (MemoryStream ms = new MemoryStream()) {image.Save(ms, image.RawFormat);byte[] buffer = new byte[ms.Length];//ms.Position = 0;//ms.Seek(0, SeekOrigin.Begin); //ms.Read(buffer, 0, buffer.Length);buffer = ms.ToArray();return buffer;}}///<summary>///将byte[]转成图⽚///</summary>///<param name="buffer">byte[]</param>///<returns></returns>public Image BytesToImage(byte[] buffer){MemoryStream ms = new MemoryStream(buffer);Image image = Image.FromStream(ms);return image;}}}。
Navicat Report Viewer使用教程
Navicat Report Viewer使用教程Navicat Report Viewer是一个容易使用的查看器,可以快捷和简单地浏览报表文件。
拥有用户友好的图形用户界面,下载、安装和激活也很方便。
下面的Navicat Report Viewer使用教程我们就从功能,界面,安装来给大家介绍介绍。
一、Navicat Report Viewer的功能:安全连接Navicat Report Viewer可通过SSH通道创建安全的SSH阶段作业,确保两台主机之间的连接受到强大验证和安全加密的保护。
验证方式可使用密码、公钥、私钥。
Navicat Report Viewer也支持HTTP通道,灵活地绕过限制直接连接互联网服务供应商。
浏览报表Navicat Report Viewer浏览报表在Navicat Report Viewer中,用户可以打开和查看记载最新数据的.rtm报表文件或报表存档,使用不同的工具去浏览报表,即搜索、刷新、放大或缩小和页面浏览。
报表打印Navicat Report Viewer提供打印支持,不仅可以打印报表到打印机,还可转换成不同的文件格式,即PDF、HTML、Excel以及更多。
实用工具虚拟组:利用虚拟组功能分类对象到组,组织Navicat Report Viewer的连接和报表。
Navicat Report Viewer虚拟组树筛选:使用树筛选功能,减少显示在Navicat Report Viewer的连接和报表列表。
输入文本,Navicat Report Viewer只会显示符合指定字符串的对象。
Navicat Report Viewer树筛选二、Navicat Report Viewer的界面介绍:Navicat Report Viewer 允许用户跟一些没有 Navicat 安装在计算机,但有安装 Navicat Report Viewer 的人分享报表,高度地增加查看报表的灵活性及便利性。
Reportviewer 报表
服务器控件使用之Reportviewer 报表收藏1.Reportviewer 报表1.1.Reportviewer控件注:本教程附2个事例:●演练:在本地处理模式下将数据库数据源与ReportViewer Web 服务器控件一起使用●演练:在本地处理模式下将业务对象数据源与ReportViewer Web 服务器控件一起使用如果您已经对ReportViewer控件基础知识比较了解,可以直接参阅事例。
1.1.1.简介Microsoft Visual Studio 2005 包括报表设计功能和ReportViewer 控件,使您可以将功能完整的报表添加到自定义应用程序。
报表可以包含表格格式数据、聚合数据和多维数据。
提供ReportViewer 控件的目的是可以处理和显示应用程序中的报表。
控件有两种版本。
ReportViewer Web 服务器控件用于在 项目中驻留报表。
ReportViewer Windows 窗体控件用于在Windows 应用程序项目中驻留报表。
这两种版本的控件都可以配置为以本地处理模式或远程处理模式运行。
配置为何种处理模式将影响有关报表从设计到部署的所有方面。
●“本地处理模式”是指ReportViewer 控件在客户端应用程序中处理报表。
所有报表都是使用应用程序提供的数据作为本地过程处理的。
若要创建本地处理模式下使用的报表,需要使用Visual Studio 中的报表项目模板。
有关详细信息,请参阅将ReportViewer 配置为进行本地处理。
●“远程处理模式”是指由SQL Server 2005 Reporting Services 报表服务器处理报表。
在远程处理模式下,ReportViewer 控件用作查看器,显示已经在Reporting Services 报表服务器上发布的预定义报表。
从数据检索到报表呈现的所有操作都是在报表服务器上处理的。
若要使用远程处理模式,则必须具有SQL Server 2005 Reporting Services 的许可副本。
ReportViewer控件最简单教程-Xieris
此时,点击表格数据行(第二行,单元格右上角弹出的图案),点击图案,弹出了刚才的三 个字段,依次选上。
ReportDataSource rds = new ReportDataSource("DataSet1", loadData2()); 解释:将 list<personal>数据添加到刚建立的数据集,数据集再填充到表格。 可以运行了。 预览效果如下:
我们如何将现有的数据放到这表格里呢?就算它知道我们有 3 个字段,也不可能直接刚好放 到表去的,所以,还需要一个数据集文件,右击项目,添加数据集文件,从工具栏拖 DataTable 到此,右击它添加 3 个列:ID,NAME,AGE。
保存一下(没保存,等会编辑可能会没出现这个数据集字段),回到 Report.rdlc 文件,在左 侧会有一个报表数据的窗口,如果没有,在菜单栏,视图菜单的最后一个选项(报表数据). 在报表数据上右击数据集,选择添加,将刚才有数据集添加到此。
/*添加 3 个列*/ dt.Columns.AddRange(dcArr);
/*添加 10 行的数据*/ for (int i = 0; i < 10; i++) {
DataRow dr = dt.NewRow(); dr[0] = "id"+i.ToString(); dr[1] = "name" + i.ToString(); dr[2] = "age" + i.ToString(); dt.Rows.Add(dr); }
日期
修改人
修改处
原因
return dt; }
改代码: ReportDataSource rds = new ReportDataSource("DataSet1", loadData());
reportviewercore使用方法
报告查看器 (ReportViewer) 是一个功能强大的报告工具,它能在.NET应用程序中方便地显示和管理报表。
而 ReportViewerCore 是ReportViewer 在 .NET Core 环境下的一个轻量级版本,它提供了与原版 ReportViewer 相似的功能,同时也方便开发者在 .NET Core 项目中使用报表功能。
接下来,我们将深入探讨 ReportViewerCore 的使用方法,帮助开发者更好地使用这一工具。
1. ReportViewerCore 是什么?ReportViewerCore 是一个在 .NET Core 应用程序中使用报表功能的工具。
它提供了类似于传统ReportViewer 的功能,包括报表的呈现、导出和打印等。
与传统的 ReportViewer 不同的是,ReportViewerCore 更轻量级,适用于 .NET Core 项目,同时也更加灵活,开发者可以更加自由地定制报表的显示和功能。
2. 使用 ReportViewerCore 的基本步骤要在 .NET Core 项目中使用 ReportViewerCore,首先需要在项目中安装相应的 NuGet 包。
安装完毕后,可以通过引用命名空间和初始化ReportViewerCore 来使用报表功能。
在初始化 ReportViewerCore 后,可以通过设置报表的路径、参数和数据源等信息来加载和显示报表。
还可以通过代码来定制报表的样式和功能,以满足项目的需求。
3. ReportViewerCore 的高级功能和定制除了基本的报表显示和管理功能,ReportViewerCore 还提供了一些高级的功能和定制选项。
可以通过设置报表的参数来实现动态筛选和查询功能;可以通过设置报表的主题和样式来定制报表的外观;还可以通过使用报表事件来控制报表的行为,比如在报表加载完成后执行特定的操作等。
这些高级功能和定制选项使得开发者可以更加灵活地使用 ReportViewerCore,并为项目定制符合需求的报表功能。
visual studio2019制作报表例子
visual studio2019製作報表例子
以下是一个使用Visual Studio 2019 中的ReportViewer 控件创建报表的示例:
1. 首先,在Visual Studio 2019 中创建一个新的Windows 窗体应用程序项目。
2. 在项目中添加一个新的报表文件。
右键单击项目,选择"添加" -> "新建项",然后选择"Reporting" 下的"报表" 模板。
3. 设计你的报表。
使用报表设计器,你可以添加数据集、字段、文本框、图表等元素来构建你的报表布局。
4. 设置报表数据源。
在报表设计器中,你可以选择数据源并连接到你的数据库或其他数据源。
5. 在Windows 窗体上添加ReportViewer 控件。
可以从工具箱中找到该控件并将其拖放到窗体上。
6. 设置ReportViewer 控件的属性。
你需要设置报表源(ReportSource)属性为你创建的报表文件。
7. 运行应用程序,你将能够查看和显示你设计的报表。
这只是一个简单的示例,你可以根据自己的需求进一步定制和扩展报表功能。
Visual Studio 2019 提供了丰富的工具和功能来创建各种类型的报表。
报表设计和数据源的设置可能会根据你的具体需求和数据源类型而有所不同。
VB.NET中ReportViewer设计报表
中ReportViewer设计报表
这次做收费系统⽤的,⾥⾯涉及到报表的使⽤,.NET中VS⾃带了⼀个控件ReportViewer,⾸次,打开这个控件看着界⾯有点简单,如同窗体⼀样,不过,仔细看过后会觉的功能还是可以的,⽽且操作简便。
1 我们可以从“⼯具箱”⾥找到该控件并添加到窗体上,如下图:
2 添加报表
我们可以在UI层上右键,选“添加”-->"新建项"-->“报表”。
当然还可以在ReportViewer控件右上⾓选择⼩三⾓,⾥⾯有“设计新报表”⼀项,通过报表向导⾃⼰建⽴。
然后,选择“报表”
2 为报表设置数据源
即⼀个DataSet对象,来存储数据库中数据
单击“完成”就完成了数据源配置。
4 代码中创建数据源实例,设置报表的新数据源。
这个数据源的数据可以是通过条件查询得到,⽤于最后显⽰在报表中。
现在,⼀个基本报表就设计完了,它不仅这些应⽤,更多的功能还有待使⽤。
ReportViewer实例教程
ReportViewer实例教程本示例操作主要实现a. ReportViewer关联Report1.rdlc的简单呈现b. 对带有报表参数的Report1.rdlc的呈现c. 利用程式生成的DataSet 填充报表d. 调用存储过程生成DataSet 填充报表==========简单的呈现==========1. 打开VS2005,文件->新建->网站选择语言种类(C#)2. 在该解决方案下设计其已经生成的Default.aspx3. 将工具箱-数据下的ReportViewer 拉入Default.aspx的设计界面4. 在用鼠标选中ReportViewer1时可以看到其右上角的小三角图标5. 用鼠标点击该小三角将展开ReportViewer任务快捷菜单6. 由于本项目目前还没有做好的报表所以选择设计新报表7. 点击设计新报表后将呈现报表Report1.rdlc的设计界面8. 由于本项目目前还没有做好的网站数据源所以此时要添加新数据源(如果没有呈现“网站数据源”界面,可以点击报表设计界面,此时上方菜单中多出现“数据”,“报表”等选项可以在“数据”菜单下,选择“显示数据源”)9. 点击“添加新数据源” 会出现“T ableAdapter 配置向导”10. 选择数据连接(如连接到本机的Northwind数据库),下一步11. 选择是否要将连接字符串保存到应用程序配置文件中,下一步12. 选择命令类型,此时可以点击取消按钮,退出向导13. 全部保存14. 选择视图菜单下“服务器资源管理器”,可以看到刚才所建立的数据连接,可以看到Northwind数据库下的表,视图,存储过程,函数15. 在解决方案的树下找到并打开App_Code文件夹下的DataSet1.xsd数据集16. 可以看到打开的数据集设计器是空的,此时可以将“服务器资源管理器”下的Northwind的表或存储过程等拉入数据集设计器(如此时拉入了Orders表和Sales by Year这个存储过程)17. 全部保存18. 双击Report1.rdlc,打开报表设计界面将此时的报表设计工具箱中的【报表项】的【表】拉入报表设计界面19. 选择“数据”菜单下的“显示数据源”,可以在网站数据源下看到DataSet1 下的两个表orders 和Sales by Year 20. 此时选择Orders下的任意字段(如OrderID 和CustomerID)拉到Report1.rdlc设计界面的表的“详细资料”处用于报表显示21. 全部保存22. 回到Default.aspx的设计界面,为ReportViewer1 绑定报表选择ReportViewer1显示刚才设计好的Report1.rdlc23. 全部保存,按F5或Ctrl F5 运行,以查看初步效果======================================接下来要为Report1.rdlc添加一个报表参数======================================24. 回到报表Report1.rdlc的设计界面点击报表菜单下的“报表参数”25. 在报表参数在设置框中添加一个报表参数进行相关设置并确定以保存(如其参数名称为rptParaA,类型为String)26. 拉入一个文本框的报表项到Report1.rdlc的设计界面以做为该报表的标题显示27. 选中并右键单击该文本框,在弹出的菜单中选择“表达式”,进入“编辑表达式”的对话框28. 在“编辑表达式”的对话框中,选择参数,并双击刚才设置的rptParaA,使文本框的值=Parameters!rptParaA.Value29. 保存对Report1.rdlc的修改30. 因为新的Report1.rdlc报表的文本框需要有报表参数值的传入所以要在ReportViewer1 对Report1.rdlc的呈现时对Default.aspx.cs的编辑31. 在Default.aspx.cs加入引用using Microsoft.Reporting.WebForms;在Page_Load中加入如下代码ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA });32.保存并运行以查看效果=========================================接下来,需要对所要呈现的报表资料进行定制也就是通过设计DataSet用符合需要的数据对报表进行资料绑定和呈现=========================================33.设置ReportViewer1的Visible为false34.在Default.aspx的设计界面加入一个按钮Button1将通过此按钮的Click事件实现对数据库的访问以及DataSet的数据填充和对ReportViewer1的资料绑定35. Default.aspx.cs加入引用using System.Data.SqlClient;using Microsoft.Reporting.WebForms;Button1_Click中的代码示例如下SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");SqlDataAdapter myda = new SqlDataAdapter("select top 5 * from orders", myConn);DataSet myds = new DataSet();myConn.Open();myda.Fill(myds);myConn.Close();ReportViewer1.Visible = true;ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA });ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);ReportViewer1.LocalReport.DataSources.Clear();ReportViewer1.LocalReport.DataSources.Add(rds);ReportViewer1.LocalReport.Refresh();注意ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);的"DataSet1_Orders"是与前台html程序的<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" Height="400px" Visible="False" Width="400px"><LocalReport ReportPath="Report1.rdlc"><DataSources> <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1_Orders" /></DataSources></LocalReport></rsweb:ReportViewer>中的<DataSources>的Name="DataSet1_Orders"是一致的可以通过对DataSet的填充时的sql语句等的定制来得到所需要的数据以便报表呈现需要注意的是由于ReportViewer1此时的关联报表为Report1.rdlc,所以DataSet 的Tables[0]中的结构一定要包含Report1.rdlc所呈现的字段,所以,这里的Sql语句为select top 5 * from orders36.保存运行点击Button1 以便报表呈现===============================================如果报表所要呈现的数据来源于存储过程那么在装载DataSet时使其数据来源于存储过程即可===============================================37.右击项目添加新项,选择报表,向项目中加入Report2.rdlc,设置其呈现的数据来源为存储过程Sales by Year同样的在Report2.rdlc的设计界面加入“表”报表项并将网站数据源下的DataSet1下的Sales by Year表中的字段拉入报表项“表”在详细数据中进行显示38.如同Default.aspx 向项目中添加新的页面Default2.aspx向Default2.aspx加入一个Button 和ReportViewer1并设置ReportViewer1所要呈现的报表为Report2.rdlc设置ReportViewer1的Visible为false双击Button 进行其Click事件的编写设置Default2.aspx为项目的起始页39.在Default2.aspx.cs加入引用using System.Data.SqlClient;using Microsoft.Reporting.WebForms;40.Button1_Click的事件代码示例如下protected void Button1_Click(object sender, EventArgs e){SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");SqlDataAdapter myda = new SqlDataAdapter("Sales by Year", myConn);myda.SelectCommand.Parameters.AddWithValue("@Beginning_Date", "1997-10-10");myda.SelectCommand.Parameters.AddWithValue("@Ending_Date", "2000-10-10");mandType = CommandType.StoredProcedure;DataSet myds = new DataSet();myConn.Open();myda.Fill(myds);myConn.Close();ReportViewer1.Visible = true;ReportDataSource rds = new ReportDataSource("DataSet1_Sales_by_Year", myds.Tables[0]);ReportViewer1.LocalReport.DataSources.Clear();ReportViewer1.LocalReport.DataSources.Add(rds);ReportViewer1.LocalReport.Refresh();}41.保存运行点击按钮报表效果查看。
microsoft的reportviewer文档和示例代码
Microsoft Report Viewer 控件是一个用于显示、导航和打印报表的强大控件。
它支持多种数据源,包括SQL Server、Oracle、XML、JSON 等,并且可以与各种数据源进行交互。
以下是一些Microsoft Report Viewer 控件的文档和示例代码:1. 文档Microsoft Report Viewer 控件的官方文档可以在Microsoft 的官方网站上找到。
文档包含了控件的使用方法、属性、事件和示例代码等信息。
2. 示例代码以下是一个简单的示例代码,演示了如何使用Microsoft Report Viewer 控件显示一个报表:```c#// 引入ReportViewer 控件的命名空间using Microsoft.Reporting.WinForms;// 创建ReportViewer 控件实例ReportViewer reportViewer = new ReportViewer();// 设置报表的路径reportViewer.ProcessingMode = ProcessingMode.Local;reportViewer.ReportPath = @"C:\path\to\report.rdlc";// 显示报表reportViewer.Show();```在上面的代码中,我们首先引入了ReportViewer 控件的命名空间,然后创建了一个ReportViewer 控件实例。
接着,我们设置了报表的路径,并使用Show 方法显示了报表。
需要注意的是,在使用ReportViewer 控件之前,需要先安装Microsoft Reporting Services 的相关组件。
此外,还需要根据实际情况设置报表的数据源和参数等信息。
VS2008中的报表控件ReportViewer的应用
VS2008中的报表控件ReportViewer的应用使用手册有3步:一.添加一个数据集,就是dataset,如果数据是数据库的,直接添加一个tableadapter连接到数据库就行,如果是动态数据,就只添加个Datatable,然后把需要的字段加进去.二.添加一个报表(就是rdlc文件),把刚才生成的数据集的字段加进去,样式随你自己喜欢的样子摆,如果没有发现数据集,就点工具栏->数据->添加数据源就好了.三.在首页里添加ReportViewer控件,然后选择控件点旁边的箭头选择刚才那个报表就可以了容易出现的问题:一.处理报表时出错。
未能找到在ObjectDataSource“ObjectDataSource1”的TypeName属性中指定的类型。
如果出现这类错误,那就请在界面上选择ObjectDataSource右边的箭头,点选择配置源->选择业务对象->选择你刚才的数据集名称->点下一步->选择方法Clone()就可以了二. 点击打印显示"无法加载客户端打印控件" 的错误只需要安装2个东西:一个是sql的补丁KB954607 地址是/downloads/details.aspx?familyid=5148B887-F323-4AD B-9721-61E1C0CFD213&displaylang=en;或者是KB954606/downloads/details.aspx?displaylang=zh-tw&FamilyID= 4603c722-2468-4adb-b945-2ed0458b8f47安得起哪个就按哪个;另外一个就是Microsoft Report Viewer Redistributable 2008 地址是/downloads/details.aspx?familyid=CC96C246-61E5-4D 9E-BB5F-416D75A1B9EF&displaylang=en2个安装完后重启IIS就OK了最后把动态添加数据源的代码贴上DataSet1 ds = new DataSet1();System.Data.DataRow dr = ds.BKPZ.NewRow();.......//这里就是对数据集赋值,想怎么赋就怎么赋Microsoft.Reporting.WebForms.ReportDataSource bb = new Microsoft.Reporting. WebForms.ReportDataSource("DataSet1_BKPZ", ds.BKPZ);ReportViewer1.LocalReport.DataSources.Clear();ReportViewer1.LocalReport.DataSources.Add(bb);。
C#报表控件ReportViewer的使用
C#报表控件R e p o r t V i e w e r的使用(转)2011-11-0120:05启动VS2005新建一个窗体项目,命名为TestProj在左边的窗体内选择“添加新数据源”或在菜单上操作“添加新数据源”:选择后出现对话窗体,选择“数据库”,进入“下一步”:本数据源以SqlServer2000所提供的Northwind数据库为例,因此在数据库内选择驱动程序为SqlServer,具体操作视所用数据库而定(如果连接为Oracle,建议用Oracle所提供的ODP for .NET,地址:)。
选择数据源后,指定数据库文件,并进行测试,如果连接不通,请检查你的软件设置。
进行下一步,至显示出库文件内的表及视图,然后打开表,并选择其中的Employees,选择完成。
在数据源窗口中显示出所选择表及表内的字段,以备使用。
同时在资源管理器中,也可以看到新增加的数据文件。
在新建的窗体内,放入报表浏览控件:此报表浏览控件集成了报表查看及打印预览的功能,可直接输出至打印机,也可直接输出至Excel文件或PDF文件,对于喜欢看Excel表格的客户来说,这个报表控件非常不错。
关于此报表的来源及台前幕后的各种说法,请自己查询相关的网站。
3 建立报表文件选中报表浏览器控件后,在控件的右上角会出现一个小三角,点击后,出现一个菜单,选择“设计新报表”或在解决方案资源管理器中添加一个新的报表文件:双击“报表项”内的“表”,则设计空白表内生成一个表格,我们可以在表格内添加数据项。
此报表的设计方式类似于MS以前的VB下报表设计环境。
在报表设计器中,我将一份报表分为五个部分,从上至下为:报表标题区、列标题区、数据显示区、合计及页脚。
如果将报表的设计形式显示出页眉及页脚,报表的形式会看得更清楚些:选择页眉及页脚:显示结果:现在开始设计报表:在“页眉”区内放入一个文本框,将内容更改为“测试报表”,居中,字体放大加粗:从数据源窗口中选择合适的列,用鼠标拖到报表内的“详细信息”表格上,数据会自动填入:将设计的报表保存后,返回报表浏览窗口,并为报表浏览器选择我们设计的报表:选中报表文件后,菜单也有所改变:再为此报表文件指定数据源,选择数据源:确定,保存文件并运行测试文件。
REPORTVIEWER教程
打开Visual Studio后,选择"文件"—>"新建项目",打开新建项目对话框:打开新建项目对话框后,在“项目类型”中选“Visual Basic"中的Windows:(也可在“项目类型”中选其它语言中的“Visual C#")再在模板中选"Windows应用程序",并在名称中输入名称"ReportViewerTest":按确定后,显示Form的设计画面:将工具箱中ReportViewer拖入至Form1中,将Form1适当的调大一点:这样就在Form1上创建了一个默认名为"ReportViewer1"的控件,这个控件就是用来浏览报表的控件。
(如果是用C#语言就创建了默认名为"reportViewer1"的控件,是第一个字母的大小写有区别)点击"ReportViewer1",在它的右上角出现了一个小三角形:点击右上角的小三角形,点选"在父容器中停靠":出现以下画面:打开解决方案资源管理器(按Ctrl+Alt+L或在菜单->视图->解决方案资源管理器):右击这个项目名称"ReportViewerTest",在出来的菜单上选:添加->新建项,如下图所示:在添加新项对话框中选"报表",名称就用默认的Report1.rdlc:再点添加后,出现Report1.rdlc的设计画面:选择工具箱中报表项下的"表",将"表"拖到Report1.rdlc设计窗体中:将"表"拖到Report1.rdlc设计窗体中后,会自动生成“table1"表,如下图:红框以内就是"table1"表。
C#报表使用方法(report viewer)
VS2008(2005) C# 报表(report viewer)使用方法YuChonggao 2011.11.05 QQ:746049506mail:************* 1 在VS解决方案资源管理器中,添加数据集2. 在数据集dstest22 中添加数据表dt22添加列3. 添加报表4. 添加报表内容页眉5.报表参数Parameters!RP_Code 为自定义参数“RP_Code”Globals!ExecutionTime 为全局数据当前系统时间6. 报表中添加表选择左边数据源,将数据集dstest22的表dt22的字段,拉到右边数据表对应的姓名,分数,班级设置数据表格的表头在每页重复设置数据表格属性中的边框solid设置页码7.在窗体(form2)中添加报表显示reportviewer将左边工具箱中的Microsoft report viewer 拖到右边的窗体中,并选择报表report22.rdlc8 在窗体代码中,对报表中参数,和数据集赋值。
// RP_Code 报表参数赋值ReportParameter rpCode;rpCode = new ReportParameter("RP_Code", "TJYCGNO0001");rv22.LocalReport.SetParameters(new ReportParameter[] { rpCode });//报表数据集赋值string str_Connection_String = AppConfig.Read("Connection_String");string sql = "select Name,Score,Class from test11";DataSet ds = SqlHelper.ExecuteDataset(str_Connection_String, CommandType.Text, sql); rv22.LocalReport.DataSources.Clear();rv22.LocalReport.DataSources.Add(new ReportDataSource("dstest22_dt22", ds.Tables[0])); rv22.RefreshReport();9 显示报表10 在报表中绘制曲线,左边工具箱的的图表拉放到报表report22.rdlc中对图表属性进行设置图表类型设置为折线选择图标对应的数据集,编辑图表值添加类别组设置X轴设置Y轴显示报表(数据表,图,页码)。
ReportViewer学习(三)
ReportViewer学习(三)演练:在本地处理模式下将数据库数据源与 ReportViewer Windows 窗体控件⼀起使⽤这个部分的知识上⼀篇⽂章⼤部分已经写了主要是矩阵的⽤法,没有别的,所以这个创建⼀个新的 Windows 应⽤程序项⽬定义数据源连接和 DataTable设计报表————————1.1. 在“项⽬”菜单上选择“添加新项”。
2. 在“添加新项”对话框中,单击“报表”。
3. 为报表⽂件输⼊⼀个名称。
默认情况下,报表名称为“Report1.rdlc”。
单击“添加”。
随即会打开报表设计器,其中将显⽰表⽰报表页的虚线图⾯。
4. 打开“⼯具箱”。
单击⽂本框,然后单击窗体。
5. 在⽂本框中输⼊报表标题:“每个部门每次换班的雇员数”。
6. 从“⼯具箱”中将“矩阵”报表项拖动到⽂本框下的报表上。
7. 在“数据源”窗⼝中,展开“DataTable1”,以查看“Dept”、“Shift”和“EmployeeID”列。
将“Dept”字段拖动到矩阵第⼀列第⼆⾏的“⾏”⽂本框上。
8. 将“Shift”字段拖动到矩阵第⼆列第⼀⾏的“列”⽂本框上。
让该⽂本框处于选中状态,并将“TextAlign”属性设置为“右”。
单击“报表格式”⼯具栏上的“B”图标,以使⽤粗体。
9. 单击矩阵中的任意位置,以选择矩阵数据区域。
然后单击右键,并按名称选择矩阵(默认值为 matrix1)。
矩阵报表项周围将显⽰⼀个轮廓。
右击该轮廓,然后选择“属性”。
检查所打开的对话框的标题是否为“矩阵属性”。
10. 单击“组”选项卡。
在“列”部分中,单击“编辑”。
11. 在“排序与分组”对话框中,单击“排序”选项卡。
12. 单击“表达式”下的第⼀个框以激活该⽂本框,然后单击向下箭头并选择“=Fields!Dept.Value”。
这样可以确保按照部门名称对报表数据进⾏排序。
13. 从“数据源”窗⼝中,将“EmployeeID”字段拖动到矩阵第⼆列第⼆⾏的“数据”⽂本框上。
ReportViewer教程
ReportViewer教程(1)-新建工程,添加Form和报表浏览器打开Visual Studio后,选择"文件"—>"新建项目",打开新建项目对话框:打开新建项目对话框后,在“项目类型”中选“Visual Basic"中的Windows:(也可在“项目类型”中选其它语言中的“Visual C#")按确定后,显示Form的设计画面:将工具箱中ReportViewer拖入至Form1中,将Form1适当的调大一点:ReportViewer教程(2)-添加空报表Report1.rdlc这样就在Form1上创建了一个默认名为"ReportViewer1"的控件,这个控件就是用来浏览报表的控件。
(如果是用C#语言就创建了默认名为"reportViewer1"的控件,是第一个字母的大小写有区别)点击"ReportViewer1",在它的右上角出现了一个小三角形:点击右上角的小三角形,点选"在父容器中停靠":出现以下画面:打开解决方案资源管理器(按Ctrl+Alt+L或在菜单->视图->解决方案资源管理器):右击这个项目名称"ReportViewerTest",在出来的菜单上选:添加->新建项,如下图所示:在添加新项对话框中选"报表",名称就用默认的Report1.rdlc:再点添加后,出现Report1.rdlc的设计画面:选择工具箱中报表项下的"表",将"表"拖到Report1.rdlc设计窗体中:将"表"拖到Report1.rdlc设计窗体中后,会自动生成“table1" 表,如下图:红框以内就是"table1" 表。
reportviewer
rdlc 报表的使用第一阶段【添加数据集】首先在微软官网下载了报表并安装之。
打开VS2010,在项目中添加“新建项”,在“已安装的模版中”选择“Reporting”—》“报表”,在最下方键入名称。
打开“工具箱”,可以按照自己的需求,或拽和编辑各种控件。
也可以在“报表数据”为报表添加“内置字段”和“参数”。
打开“报表数据”的操作:“视图”—》最后一项“报表数据”,或者按“Ctrl + Alt + D ”。
既然是报表,当然离不开数据了。
我这里选择用数据库作为数据源。
在报表数据工具栏中,点击“新建”—》“数据集”会弹出一个新建数据集的界面:这里选择“数据库”,下一步,“数据集”,点击“新建连接”,选择好服务器名、密码和数据库。
测试一下:成功后,确定。
选择你所需要的表、视图、函数或存储过程。
确定后,返回到这个界面,你可以更改数据集的名称、选择具体的表、视图等。
然后确定。
这样在“报表数据”栏中就可以看到新建的数据集了。
第二阶段【设计报表】介绍一些设计报表的工具箱,在VS2010 IDE左侧“工具箱”中的报表项,文本框用于可以显示文字、传递参数。
表和矩阵则可以用来存放数据。
不同的是表是针对于“列数固定、行数可变的数据”设计的,而矩形则是针对于“列数与行数均可变”的聚合数据设计的。
一般数据库中的表字段都为引文,但是显示的时候,都用中文,为了保证数据隐秘,也行该用中文。
说说表中的实现,对于行标题,直接修改即可,而数据行可以修改,也可以不修改。
数据行由字段占位符构成,可以右击编辑占位符的属性来实现显示中文。
在查询报表时,占位符会被真实数据所代替。
,也可以编辑表达式,用!符号来做找到字段属性。
矩阵跟列表框差不多。
矩形可以作为其他报表项的容器,列表则是用于显示每一个组或数据行重复的数据项。
列表框可以通过编辑矩形属性,在可见性中绑定报表中的数据项。
图像则是用于显示图片的,可以手动导图。
对于需要汇总比较数据的用户来说,图标则是你的不二选择。
ReportViewer使用详细案例
ReportViewer(报表)使用案例
简单的使用步骤:
1.打开VS2010-->新建项目
2.资源管理器-->右键添加-->新建项
3.选择数据集添加
4.右键击工具箱添加(注意这里可以添加多种类型的数据集,但我们现在操作的是TableAdapter,您也可选其他选项)
完成后会出现如下界面:
5.点击新建连接,自行配置个人数据库连接,配置完成后直接下一步,如下图这里可以选择你要采用的数据库访问方式,然后直接下一步。
如:我选的是sql语句类型的数据库访问方式,sql输入完毕后直接完成
在数据集系统会自动生成如下图:
您可保存关闭!
6.再次来到解决方案--右键--添加--新建项
7.新建数据集
出现如下图,选择刚才所见的数据集确定
8.在该区域鼠标右键插入表(或其他图形),双击编辑表头选择数据调整页面位置完成保存关闭!
9.来到页面编辑选择报表里控件reportVeiwer 拖到窗口上,调整控件位置
10.点击小三角选择报表
选择后保存关闭窗口大功告成!运行程序查看。
如下:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
打开Visual Studio后,选择"文件"—>"新建项目",打开新建项目对话框:打开新建项目对话框后,在“项目类型”中选“Visual Basic"中的Windows:(也可在“项目类型”中选其它语言中的“Visual C#")再在模板中选"Windows 应用程序",并在名称中输入名称"ReportViewerTest":按确定后,显示Form的设计画面:将工具箱中ReportViewer拖入至Form1中,将Form1适当的调大一点:这样就在Form1上创建了一个默认名为"ReportViewer1"的控件,这个控件就是用来浏览报表的控件。
(如果是用C#语言就创建了默认名为"reportViewer1"的控件,是第一个字母的大小写有区别)点击"ReportViewer1",在它的右上角出现了一个小三角形:点击右上角的小三角形,点选"在父容器中停靠":出现以下画面:打开解决方案资源管理器(按Ctrl+Alt+L或在菜单->视图->解决方案资源管理器):右击这个项目名称"ReportViewerTest",在出来的菜单上选:添加->新建项,如下图所示:在添加新项对话框中选"报表",名称就用默认的Report1.rdlc:再点添加后,出现Report1.rdlc的设计画面:选择工具箱中报表项下的"表",将"表"拖到Report1.rdlc设计窗体中:将"表"拖到Report1.rdlc设计窗体中后,会自动生成“table1" 表,如下图:红框以内就是"table1" 表。
在红框以内是报表的空白区:下面我们来为报表添加页眉、页脚:在报表空白区右击调出菜单来添加页眉、页脚:可以点击"菜单->报表"调出菜单来添加页眉、页脚:还可以点击下图的小方块调出菜单来添加页眉、页脚:有了这个菜单,分别点击页眉、页脚,这样就为这个报表添加了页眉、页脚:在上图中有"页眉"字样的横条,我们称为页眉横条,以此类推;在页眉横条下方带阵点的部分称为页眉区域,在页脚横条下方带阵点的部分称为页脚区域,主体横条下方带阵点的部分称为主体区域,现在主体区域中还有一个"table1"表。
页眉、页脚增加好了后,我们还要为报表做一个数据源,在解决方案资源管理器中,右击工程"ReportViewerTest"->添加->新建项:点击“新建项”后,在出来的“添加新项”对话框的模板中选“数据集"名称就用默认的DataSet1.xsd 。
点击“添加”按钮后,出现DataSet1.xsd设计画面。
打开工具箱,将TableAdapter拖到DataSet1.xsd设计画面。
将TableAdapter拖到DataSet1.xsd设计画面后会出现数据源配置向导,再点击"新建连接":在出来的“添加连接”对话框中,服务器名中输入"(local)"(因为在本地安装了Sql Server 2005),在“选择或输入一个数据库名”中下拉按钮后,显示了本地所有数据库,我们选择"Northwind"库:选择好Northwind库后,按确认,出现下面的画面:在这个域中自动填入了"NorthwindConnectionString (MySettings)",点下一步后出现下面画面,这里我们就选“使用 SQL 语句”,再点下一步:出现上面的画面后,在其中填入下面的SQL语句:SELECT panyName AS 公司名称, od.OrderID AS 定单号, p.ProductName AS 产品名称, od.UnitPrice AS 单价, od.Quantity AS 数量,od.UnitPrice * od.Quantity AS 总价, Orders.OrderDate AS 定货日期FROM [Order Details] AS od INNER JOINOrders ON od.OrderID = Orders.OrderID INNER JOINCustomers AS c ON Orders.CustomerID = c.CustomerID INNER JOINProducts AS p ON od.ProductID = p.ProductID填入Sql语句后,点下一步,出现下面的画面:它已经勾选了"填充 DataTable",方法名: "Fill" 和勾选了"返回 DataTalbe",方法名称: "GetData"; 就用它的这些默认的,点下一步,显示了“向导结果”,如下面的画面:在上面画面中点击完成,显示了下面的画面:如果右面的“数据源”窗口没有显示,可按Shift+Alt+D调出来,至此报表的“数据源”就做好了。
如果“数据源”窗口没有显示,可按Shift+Alt+D调出来,并将DataTable1展开,回到"Report.rdlc [设计]"窗口,因为数据源中有7个字段,所以我们要为"table1"表再创建4列。
如上图,在table1表中的任意一个地方点击(也选中了table1表中的一个元素);点击后如下图:然后再右击table1表的其中一列的列头,如下图:选择"在右侧插入列",一共插入4列,再将数据源中“公司名称”拖曳到table1表中的第1列中间一行(详细信息行),如红色箭头所示:将"定单号"拖曳到table1表中的第2列中间一行(详细信息行),将"产品名称"拖曳到table1表中的第3列中间一行(详细信息行),将"单价"拖曳到table1表中的第4列中间一行(详细信息行),将"数量"拖曳到table1表中的第5列中间一行(详细信息行),将"总价"拖曳到table1表中的第6列中间一行(详细信息行),将"定货日期"拖曳到table1表中的第7列中间一行(详细信息行),拖完后如下图:在适当调整列的宽度,光标放在列头上的列与列之间拖曳。
好了,我们已经将数据源字段放入到报表中去了。
调出Form1.vb的设计器,并选中报表浏览器ReportViewer控件(在上面点击一下即选中), 再点击ReportViewer右上角的小山角形如下图,在"选择报表中"选ReportViewerTest.Report1.rdlc:选择ReportViewerTest.Report1.rdlc后,将自动创建DataSet1,DataTable1BindingSource,DataTable1TableAdapter 3个实例,显示在Form1.vb的设计器的下方:现在可以运行程序了,按F5运行:根据运行结果,适当再调整各列的列宽。
对日期格式化,下面是程序运行后日期显示的部分,后面的小时,分,秒我们并不需要,要去掉;调出Report1.rdlc报表设计器画面,右击定货日期这列中间行(详细信息行):再点属性,调出"文本框属性"对话框,在格式选项卡的格式代码中输入"d" :下面是(中国区域)格式代码和显示格式对照:格式代码显示格式(d) Short date: . . . . . . . 2010/1/22(D) Long date:. . . . . . . . 2010年1月22日(t) Short time: . . . . . . . 9:28(T) Long time:. . . . . . . . 9:28:51(f) Full date/short time: . . 2010年1月22日9:28(F) Full date/long time:. . . 2010年1月22日9:28:51(g) General date/short time:. 2010/1/22 9:28(G) General date/long time: . 2010/1/22 9:28:51(default):. . . . . . . . 2010/1/22 9:28:51 (default = 'G')(M) Month:. . . . . . . . . . 1月22日(R) RFC1123:. . . . . . . . . Fri, 22 Jan 2010 09:28:51 GMT(s) Sortable: . . . . . . . . 2010/01/22T09:28:51(u) Universal sortable: . . . 2010/01/22 09:28:51Z (invariant)(U) Universal sortable: . . . 2010年1月22日1:28:51(Y) Year: . . . . . . . . . . 2010年1月它符合String.Format的格式。
还可以这样格式化日期,在文本框属性中选"常规"选项卡,"值"中输入:=Format(Fields!定货日期.Value,"g")如下图所示:下面再将"表头"行显示为粗体并居中:点击"表头"行行头:选中"表头"行行头后,再选择菜单中格式->字体->粗体, 再选择菜单中格式->两端对齐->居中,这样就调整好行头格式了。
下面来设置显示报表的页宽页高:按F4调出"属性页"窗口,因为刚才是选中的"表头"行行头,所以调出的属性页是"表头"行行头(TableRow1)属性页,在报表空白区(关于报表空白区见ReportViewer教程(3)-添加空报表Report1.rdlc)点一下即换成的报表属性页如下图:在“报表”的属性页中展开InteractiveSize,InteractiveSize的Height决定了打印的行数,显示出来的行数=InteractiveSize.Height/TableRow2.Height假如要显示25行,根据公式:InteractiveSize.Height=25 * 0.63492得出15.87,我们把Interactive.Height设成15.87把Interactive.Height设成15.87后如下图:设打印布局中行宽高:在运行程序后,导航条上有个打印布局(见上图)可能不正常,需要设置一下,报表属性中的PageSize决定了打印布局中的行宽高:注意:报表属性中的PageSize.Width-margins*2 >=主体属性中Size.Width 否则在显示打印布局时会将主体中没有被显示出来的页面变成第2页显示出来。