ASP.NET服务器控件ReportViewer(四)
演练:在本地处理模式下将业务对象数据源与ReportViewer Web服务器控件一起使用
本演练说明了如何在 Microsoft Visual Studio 2005 ASP.NET 应用程序中的报表中使用对象数据源。有关业务对象和对象数据源的详细信息,请参阅Binding to Business Objects。
请执行下列步骤向 Visual Studio ASP.NET 网站项目添加报表。本示例将用 Microsoft Visual C# 来创建应用程序。
创建新的 ASP.NET 网站项目
1. 在“文件”菜单中,指向“新建”,然后选择“网站”。
2. 在“新建网站”对话框中,从“语言”下拉列表中选择 Visual C#,并选择 ASP.NET 网站模板。
3. 在“位置”中,选择 HTTP 并键入网站的 URL。默认的 URL 为 http://localhost/WebSite。改为http://localhost/ReportViewerTest,单击“确定”。
创建要用作数据源的业务对象。
1. 在解决方案资源管理器中选择项目网站(以“http://”开头)。右键单击并选择“添加新项”。
2. 在“添加新项”对话框中,选择“类”,键入 Employee.cs 作为文件名,然后单击“添加”。
3. 在询问“是否要将该类放在‘App_Code’文件夹中”的消息框中,选择“是”。新文件将被添加到项目中并在 Visual Studio 中自动打开。
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 ID是oracle登陆用户名,Password是oracle登陆密码。providerName是数据提供者。
6. 添加对System.Data.OracleClient的引用
1) 右击网站项目,在弹出的选项卡下选择添加引用
2) 找到.net标签页下找到System.Data.OracleClient,单击确定。
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. 右键单击项目网站并选择“添加新项”。
3. 在“添加新项”对话框中,选择“报表”。键入报表的名称,然后单击“添加”。该报表将被添加到项目中并在报表设计器中自动打开。报表的默认名称为 Report.rdlc。
检查“网站数据源”窗口
2. 单击“Report.rdlc 设计”选项卡。在左侧窗格中,单击“网站数据源”选项卡。如果看不到“网站数据源”选项卡,请从“数据”菜单中选择“显示数据源”。
3. 确认对象“Employee”及其3个公共属性“id”,“名称”和“年龄”都显示在“网站数据源”窗口中的层次结构中。
设计报表
1. 如果报表是以设计模式打开的,请打开工具箱。从工具箱中将某个表控件拖到报表上。该表控件将在一个选项卡式设计窗口中打开。
2. 表控件设计分三行,分别是表头,详细信息,表尾。表头是指报表的列字段,详细信息是绑定的列,既报表每列的数据,表尾是报表的每列的底部数据。
3. 从“网站数据源”窗口,将“Employee”数据源中的“EmployeeId”字段拖到表的详细信息行的第一列中。详细信息行是中间行。请注意,当您指定详细信息行后,系统将自动填充标题行。
4. 将“EmployeeName”字段拖到详细信息行的第二列中,使其显示在“EmployeeId”字段的旁边。第三列EmployeeAge同上。(可选操作)通过单击左侧的表格表头图标并应用粗体样式来选择标题行。
5. 若要向报表中添加标题,请打开工具箱并将一个文本框拖到报表上。将该文本框置于表上方。键入 Employee 作为报表名称。(可选操作)对文本应用字号和字体样式来突出标题。
向网页中添加 ReportViewer 控件
1. 通过在解决方案资源管理器中右键单击 Default.aspx,选择设计视图中的默认网页,然后选择“视图设计器”。
2. 打开工具箱。在工具箱中,展开“数据”节点并将 ReportViewer 图标拖到网页上。
3) 如果“数据”节点下没有ReportViewer图标,则右击“数据”节点,选择“选择项”。
4) 在.NET Framework组件选项卡下选中命名空间为Microsoft.Reporting.WebForm下的ReportViewer,点击确定。
3. 选择 ReportViewer 控件,并通过单击右上角的三角形打开智能标记面板。单击“选择报表”下拉列表并选择刚才设计的报表。默认情况下,名称为 c:\inetpub\wwwroot\ReportViewerTest\Report.rdlc。请注意,ObjectDataSource 控件直接显示在 ReportViewer 控件下面,并自动设置为检索 DataTable 的内容,就像通过数据表的 TableAdapter 组件所配置的那样。
运行应用程序
l 把Default.aspx设为起始页,按 F5 以边运行边调试,或按 CTRL + F5 以运行而不调试,然后查看报表。