设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网络编程 >> ASP.NET技巧 >> 使用ASP.NET 2.0中的ReportViewer控件
精品推荐
ASP.NET技巧点击TOP10
·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
·ASP.NET2.0下含有CheckBox的GridView删除选定记录实例
·web中,如何读取Word内容(包含表格,但不包含图片)并且显示在页面中或保存进数据库中
·分享个极好的无刷新二级联动下拉列表,同样适用与firefox
·ASP.NET超时设置
·ASP.NET2.0下利用javascript实现TreeView中的checkbox全选
·使用.NET实现断点续传
·ASP.NET访问Oracle数据库的方法
·asp.net 2.0中用GRIDVIEW插入新记录
·ASP.NET2.0下为GridView添加服务器端删除确认!
网络编程点击TOP10
·ASP.NET 程序中常用的三十三种代码
·从零开始学ASP.NET(基础篇)
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·.NET 初 级 读 本
·官方水晶报表 .NET 应用程序实例下载 (C#、Visual C++.NET)
·十天学会ASP.net之第一天
·C#版的网站新闻发布系统
·利用Web Application Stress Tool(WAS)做性能测试(3)
·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
·设计ASP.NET新闻管理系统
精选专题

使用ASP.NET 2.0中的ReportViewer控件

作者: 来源:http://www.xgdown.com/ 时间:2007-8-23 18:19:43

使用ASP.NET 2.0中的ReportViewer控件(2)     ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString);
   SqlCommand cmd=new SqlCommand();
   cmd.Connection=cnn;
   cmd.CommandText="select
   CustomerID,CompanyName,ContactName,Country
from customers where country=@country";
   SqlParameter p=new SqlParameter
("@country",country);
   cmd.Parameters.Add(p);
   cnn.Open();
   SqlDataReader reader = cmd.ExecuteReader();
   List<Customer> list = new List<Customer>();
   while (reader.Read())
   {
    Customer c = new Customer();
    c.CustomerID = reader.GetString(0);
    c.CompanyName = reader.GetString(1);
    c.ContactName = reader.GetString(2);
    c.Country = reader.GetString(3);
    list.Add(c);
   }
   cnn.Close();
   return list;
  }
  public static List<Customer> GetAllCustomers()
  {
   SqlConnection cnn = new SqlConnection(
    ConfigurationManager.ConnectionStrings
    ["NorthwindConnectionString"].ConnectionString);
   SqlCommand cmd = new SqlCommand();
   cmd.Connection = cnn;
   cmd.CommandText = "select
   CustomerID,CompanyName,ContactName,Country from customers";
   cnn.Open();
   SqlDataReader reader = cmd.ExecuteReader();
   List<Customer> list = new List<Customer>();
   while (reader.Read())
   {
    Customer c = new Customer();
    c.CustomerID = reader.GetString(0);
    c.CompanyName = reader.GetString(1);
    c.ContactName = reader.GetString(2);
    c.Country = reader.GetString(3);
    list.Add(c);
   }
   cnn.Close();
   return list;
  }
 }
}

  Customer类定义了四个公共属性,即CustomerID、CompanyName、ContactName和Country。 在之后,是这个类包含的两个静态方法 – GetCustomersForContry()和GetAllCustomers()。 这两个方法都是比较简单的,一个是返回属于某一个国家的所有顾客信息,另一个是返回全部顾客信息。 首先打开Northwind数据库的连接,然后通过SqlCommand对象执行SELECT查询。 之后,用SqlDataReader对象来获取数据。 遍历这个SqlDataReader对象,在其内每次都创建一个Customer对象,然后设置它的各个属性,最后把其添加到Customer对象的泛型集合中。 在类的结尾处就是把这个Customer对象的泛型集合返回给调用者。

  创建数据源

  设计报表的时候,需要在你的项目中为其指定一个数据源。 在你的项目中添加一个数据源可以这样做,选择“数据”菜单 -> 添加新数据源。 然后将会出现如下图所示的对话框:

  你的数据源可以是数据库、web service或者是一个对象。 本例中我们选择的是对象。 然后单击“下一步”按钮,会弹出让我们选择数据源的界面。 我们选择的是Customer类(如下图所示)。

  单击“完成”按钮后就完成了数据源配置向导。 这样,你就在你的类库中添加了一个新的数据源。 如果要查看数据源的话可以这么做,选择“数据”菜单 -> 显示数据源,就会出现如下图所示的界面:

  设计报表

  接下来添加一个报表。 右键单击项目,选择“添加新项”。 在对话框里选择“报表”,并单击“添加”按钮(如下图所示)。 这样,我们就添加了一个名为“Report1.rdlc”的文件。 .rdlc文件是一个报表文件,它保存的是报表布局和数据映射。

  一旦你打开了Report1.rdlc文件,Visual Studio的工具箱里就会显示出一套与报表相关的控件(如下所示)。

  这些控件中,“文本框”控件和“表”控件是非常常用的。 “文本框”控件用于显示一段静态文本或者是一个表达式。 “表”控件用于显示表格数据,其生成的结果会显示在你的报表的“主体”中。

  设计出的报表如下图所示:

  在报表的“页眉”部分的头部,有一个文本框,其Value属性的值为“Customer Listing”。 在这个文本框的下面还有另一个文本框,其Value属性的值为“=Parameters!SubTitle.Value”。它的意思就是指明文本框的值来自名为SubTitle的参数。 我们如何来定义参数呢? 这需要在报表的ReportParameters属性中添加参数。 打开的报表参数对话框如下图所示:

  请注意:参数的设置是在我们的.NET代码中完成的。

  如果要在报表上显示日期的话,只要设置相关的文本框的Value属性为“=FormatDateTime(ToDay(),DateFormat.ShortDate)”即可。 报表的一大优势就是有很多的内置函数,如ToDay()和FormatDateTime之类的。 本例中,我们使用FormatDateTime()函数来以ShortDate的格式显示当前的日期(ToDay())。

  现在,从工具箱里拖拽一个“表”控件到你的报表上。 默认情况下,“表”控件有3行3列,3行分别是:表头、详细信息和表尾。 当然,你也可以为“表”控件添加行和列。 从数据源窗口中拖拽CustomerID、CompanyName、ContactName和Country属性到你的“表”控件的详细信息行上。 这样,系统将会自动地添加文本框,并设置其属性为=Fields!CustomerID.Value、=Fields!CompanyName.Value之类的。 此时,列头也会被自动地添加。 当然,你也可以根据你的需求做你需要的修改。

  接下来,我们要按顾客所属的国家对记录进行分组。 右键单击详细信息行的边框,选择插入组(如下图所示)。

  然后将会出现如下图所示的对话框:

  在“排序”选项卡中选择“=Fields!Country.Value”作为表达式,选择“Ascending”作为排序方向。

  就是这些东西,很简单吧。 这样,我们就完成了报表的设计。

  显示报表

  新建一个名为“ReportViewerDemo”的web站点。 添加ReportViewerLib程序集的引用,这样该程序集就会拷贝到你的web站点的BIN目录下。 之后,把Report1.rdlc文件添加到你的web站点中。 在工具箱的“数据”选项卡中拖拽一个ReportViewer控件到你的Default.aspx页上, 打开ReportViewer控件的智能标记面板,在“选择报表”的下拉框中选择Report1.rdlc,如下图所示:

  选择好报表文件后,系统会自动地添加一个TypeName属性为Customer的对象数据源控件。 你可以在对象数据源控件的配置向导中验证一下。

  接下来,拖拽一个DropDownList控件到页的头部,并为其设置4个选项 – All、USA、UK和Brazil。 同时设置它的AutoPostBack属性为True。 然后,打开数据源控件的配置向导,设置“SELECT”操作为SelectCustomersForCountry()方法。

  设置SelectCustomersForCountry()方法的country参数为DropDownList1的SelectedValue。

  默认情况下,将在报表中显示所有顾客信息。 当你在DropDownList选择了一个国家的时候,报表中就会显示属于你所选择的国家的顾客信息。 要完成这样的功能,我们只需要处理DropDownList的SelectedIndexChanged事件。

protected void DropDownList1_SelectedIndexChanged

共3页 9 7 [1] [2] [38 :>

使用ASP.NET 2.0中的ReportViewer控件 相关文章:
使用ASP.NET 2.0中的ReportViewer控件 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com