ASP.NET服务器控件ReportViewer(四)

时间:2024-03-13 21:44:13

演练:在本地处理模式下将业务对象数据源与ReportViewer Web服务器控件一起使用

本演练说明了如何在 Microsoft Visual Studio 2005 ASP.NET 应用程序中的报表中使用对象数据源。有关业务对象和对象数据源的详细信息,请参阅Binding to Business Objects

 

请执行下列步骤向 Visual Studio ASP.NET 网站项目添加报表。本示例将用 Microsoft Visual C# 来创建应用程序。

 

 创建新的 ASP.NET 网站项目

1.         在“文件”菜单中,指向“新建”,然后选择“网站”。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/23.jpg

 

2.         在“新建网站”对话框中,从“语言”下拉列表中选择 Visual C#,并选择 ASP.NET 网站模板。

3.         在“位置”中,选择 HTTP 并键入网站的 URL。默认的 URL  http://localhost/WebSite。改为http://localhost/ReportViewerTest,单击“确定”。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/24.jpg

 

 创建要用作数据源的业务对象。

1.         在解决方案资源管理器中选择项目网站(以“http://”开头)。右键单击并选择“添加新项”。

 

 http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/25.jpg

2.         在“添加新项”对话框中,选择“类”,键入 Employee.cs 作为文件名,然后单击“添加”。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/26.jpg

 

3.         在询问“是否要将该类放在‘App_Code’文件夹中”的消息框中,选择“是”。新文件将被添加到项目中并在 Visual Studio 中自动打开。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/27.jpg

 

4.         Oracle数据库中事例创建表


create table EMPLOYEE_TABLE_2

(

  EMPLOYEE_ID    
NUMBER,

  EMPLOYEE_NAME  
VARCHAR2(20),

  AGE            
NUMBER,

  DEPARTMENT_ID  
NUMBER,

  PROJECT_ID     
NUMBER,

  LOGIN_ID       
VARCHAR2(20),

  LOGIN_PASSWORD 
VARCHAR2(20)

)

tablespace USERS

  pctfree 
10

  initrans 
1

  maxtrans 
255

  storage

  (

    initial 64K

    minextents 
1

    maxextents unlimited

  );

 

5.         web.config中配置数据库连接

3)         什么是web.config

可扩展的基础结构是   ASP.NET   配置系统的一大特色,该基础结构使您可以在最初部署   ASP.NET   应用程序时定义配置设置,以便可以随时添加或修改这些配置设置,同时对运作着的   Web   应用程序和服务器产生的影响也将被减至最小。

4)         配置连接

web.config<configuration></configuration>下加上


<connectionStrings>

<add name="ConnectionString" connectionString="Data Source=HCDB;Persist Security Info=True;User ID=huchen;Password=huchen;Unicode=True" providerName="System.Data.OracleClient"/>

</connectionStrings>

 

其中Data Source是指tns中的Host String, User IDoracle登陆用户名,Passwordoracle登陆密码。providerName是数据提供者。

6.         添加对System.Data.OracleClient的引用

1)         右击网站项目,在弹出的选项卡下选择添加引用

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/28.jpg 

 

2)         找到.net标签页下找到System.Data.OracleClient,单击确定。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/29.jpg

 

7.          Employee.cs 的默认代码替换为以下代码:

 


using System;

using System.Data;

using System.Data.OracleClient;

using System.Collections.Generic;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

 

/// <summary>

///employee 的摘要说明
///created by 胡琛 17-Feb-09

/// </summary>

public class Employee

{

    
public Employee()

    {

        
//

        
//TODO: 在此处添加构造函数逻辑

        
//

    }

    
public Employee(string employeeId, string employeeName, string employeeAge)

    {

        
this.employeeId = employeeId;

        
this.employeeName = employeeName;

        
this.employeeAge = employeeAge;

    }

    
private string employeeId;

    
private string employeeName;

    
private string employeeAge;

 

    
public string EmployeeId

    {

        
get

        {

            
return employeeId;

        }

        
set

        {

            employeeId 
= value;

        }

    }

    
public string EmployeeName

    {

        
get

        {

            
return employeeName;

        }

        
set

        {

            employeeName 
= value;

        }

    }

    
public string EmployeeAge

    {

        
get

        {

            
return employeeAge;

        }

        
set

        {

            employeeAge 
= value;

        }

    }

    
public static List<Employee> GetEmployees()

    {

        OracleConnection conn 
= new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

        OracleCommand cmd 
= new OracleCommand();

        cmd.CommandText 
= "select * from employee_table_2";

        cmd.Connection 
= conn;

        conn.Open();

        OracleDataReader reader 
= cmd.ExecuteReader();

        List
<Employee> list = new List<Employee>();

        
while (reader.Read())

        {

            Employee employee 
= new Employee(reader.GetOracleNumber(0).ToString(), reader.GetOracleString(1).ToString(), reader.GetOracleNumber(2).ToString());

            list.Add(employee);

        }

        reader.Close();

        conn.Close();

        
return list;

    }

}

8.         从“项目”菜单中,选择“生成解决方案”。这将为对象创建程序集,并在您向项目中添加报表后,使业务对象“Employee”显示在“网站数据源”窗口中。

 

 向项目中添加报表

1.         请确保在解决方案资源管理器中选中了项目网站或某个项目项。

 

2.         右键单击项目网站并选择“添加新项”。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/30.jpg

 

3.         在“添加新项”对话框中,选择“报表”。键入报表的名称,然后单击“添加”。该报表将被添加到项目中并在报表设计器中自动打开。报表的默认名称为 Report.rdlc

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/31.jpg

 

 检查“网站数据源”窗口

2.         单击“Report.rdlc 设计”选项卡。在左侧窗格中,单击“网站数据源”选项卡。如果看不到“网站数据源”选项卡,请从“数据”菜单中选择“显示数据源”。

 

3.         确认对象“Employee”及其3个公共属性“id”,“名称”和“年龄”都显示在“网站数据源”窗口中的层次结构中。

 

 设计报表

1.         如果报表是以设计模式打开的,请打开工具箱。从工具箱中将某个表控件拖到报表上。该表控件将在一个选项卡式设计窗口中打开。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/32.jpg

 

2.         表控件设计分三行,分别是表头,详细信息,表尾。表头是指报表的列字段,详细信息是绑定的列,既报表每列的数据,表尾是报表的每列的底部数据。

     http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/33.jpg

3.         从“网站数据源”窗口,将“Employee”数据源中的“EmployeeId”字段拖到表的详细信息行的第一列中。详细信息行是中间行。请注意,当您指定详细信息行后,系统将自动填充标题行。

 

4.         将“EmployeeName”字段拖到详细信息行的第二列中,使其显示在“EmployeeId”字段的旁边。第三列EmployeeAge同上。(可选操作)通过单击左侧的表格表头图标并应用粗体样式来选择标题行。

    http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/34.jpg

5.         若要向报表中添加标题,请打开工具箱并将一个文本框拖到报表上。将该文本框置于表上方。键入 Employee 作为报表名称。(可选操作)对文本应用字号和字体样式来突出标题。

 

 向网页中添加 ReportViewer 控件

1.         通过在解决方案资源管理器中右键单击 Default.aspx,选择设计视图中的默认网页,然后选择“视图设计器”。

2.         打开工具箱。在工具箱中,展开“数据”节点并将 ReportViewer 图标拖到网页上。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/35.jpg

 

3)         如果“数据”节点下没有ReportViewer图标,则右击“数据”节点,选择“选择项”。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/36.jpg

 

4)         .NET Framework组件选项卡下选中命名空间为Microsoft.Reporting.WebForm下的ReportViewer,点击确定。

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/37.jpg

 

3.         选择 ReportViewer 控件,并通过单击右上角的三角形打开智能标记面板。单击“选择报表”下拉列表并选择刚才设计的报表。默认情况下,名称为 c:\inetpub\wwwroot\ReportViewerTest\Report.rdlc。请注意,ObjectDataSource 控件直接显示在 ReportViewer 控件下面,并自动设置为检索 DataTable 的内容,就像通过数据表的 TableAdapter 组件所配置的那样。

 

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/38.jpg

http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/39.jpg

 

    

 运行应用程序

l  Default.aspx设为起始页,按 F5 以边运行边调试,或按 CTRL + F5 以运行而不调试,然后查看报表。

 

 http://p.blog.csdn.net/images/p_blog_csdn_net/huc87/EntryImages/20090324/40.jpg