ASP.NET服务器控件ReportViewer(三)
演练:在本地处理模式下将数据库数据源与ReportViewer Web服务器控件一起使用
本演练显示了如何为 Microsoft Visual Studio 2005 ASP.NET 网站创建报表,以及如何向网页添加 ReportViewer 控件,以便用户可以查看该报表。
先决条件
本演练假定您可以连接到 Oracle DataBase 实例,并且已建立EMPLOYEE_TABLE_2
表。您还必须对运行 Microsoft Internet Information Services (IIS) 5.0 版或更高版本的服务器具有访问权限,并具有创建 ASP.NET 网页的权限。
EMPLOYEE_TABLE_2建表
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
);
在您的计算机上执行以下步骤,以使用 Visual Studio 2008 模板创建含有配置为查看您所创建报表的 ReportViewer 控件的 ASP.NET 网页。常规过程如下:
1. 创建新的网站。
2. 通过添加 DataSet 来定义数据连接和 DataTable。
3. 设计报表。
4. 将 ReportViewer 控件添加到应用程序。
5. 编译和运行应用程序。
对于本示例,在 Microsoft Visual C# 中创建应用程序。
创建新的网站
1. 在“文件”菜单中,指向“新建”,选择“网站”。
2. 在“新建网站”对话框中,选择“ASP.NET 网站”。
3. 在“语言”列表中,选择 Visual C#,再单击“确定”。
4. 在“位置”框中,保留选定的默认 HTTP,然后输入网站根目录的位置,使用“浏览”导航及创建新的文件夹(如果需要)。单击“确定”。
5. 网站项目将打开,并显示 Default.aspx 网页。
6. 在“查看”菜单上,选择“设计器”。
现在您就可以修改网站的默认页。
通过添加数据集来定义数据连接和 DataTable
1. 在web.config中配置数据库连接
1) 什么是web.config
可扩展的基础结构是 ASP.NET 配置系统的一大特色,该基础结构使您可以在最初部署 ASP.NET 应用程序时定义配置设置,以便可以随时添加或修改这些配置设置,同时对运作着的 Web 应用程序和服务器产生的影响也将被减至最小。
2) 配置连接
在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是数据提供者。
2. 在服务器资源管理器中,右键单击网站项目(非解决方案节点),然后选择“添加新项”。
3. 在“添加新项”对话框中,单击“数据集”。提示您是否应将项添加到 App_Code 文件夹是,请单击“是”。这将把新的 XSD 文件 DataSet.xsd 添加到项目,打开数据集设计器,并调用 TableAdapter 配置向导。
4. 在“选择您的数据连接”页上,配置向导自动找到了Web.config中的连接,接受默认连接并点击下一步。
5. 在“选择命令类型”页上,选择“使用 SQL 语句”。
6. 在“输入 SQL 语句”页上,输入以下SQL 查询以从 EMPLOYEE_TABLE_2表中中检索数据,再单击“完成”:
SELECT t.employee_id, t.employee_name, t.age FROM employee_table_2 t
还可以单击“查询生成器”按钮,然后使用查询生成器创建查询,并使用“执行查询”按钮对其进行检查。
7. 在“选择要生成的方法”页上,接受默认值“填充 DataTable”(“方法名称”:Fill)和“返回 DataTable”(“方法名称”:GetData)。单击“下一步”。
8. 在“向导结果”页上,单击“完成”。
现在已完成将 ADO.NET DataTable 配置为报表的数据源。
忽略以下错误,点击确定。
9. 在 Visual Studio 的“数据集设计器”页上,应看到添加的 DataTable(默认名称为 DataTable1),其中列出了从查询定义得到的列。在“数据”菜单中,可以选择“预览数据”来检查查询结果。
设计报表
1. 在“网站”菜单上,选择“添加新项”。
1. 在“添加新项”对话框中,选择“报表”模板,输入报表文件的名称,再单击“添加”。这将创建报表定义文件(默认为 Report.rdlc),启动报表设计器,并在左窗格中显示“网站数据源”窗口。如果看不到“网站数据源”选项卡,请从“数据”菜单中选择“显示数据源”。
2. 显示工具箱,将“报表项”组中的“表”拖至报表设计图面上。
表控件设计分三行,分别是表头,详细信息,表尾。表头是指报表的列字段,详细信息是绑定的列,既报表每列的数据,表尾是报表的每列的底部数据
3. 在“网站数据源”窗口,展开 DataTable1 节点,直至看到查询得到的列,然后将 Employee_Id 拖至表中第一列的中间行。中间行是详细信息行。请注意,指定详细信息行时,标题行会自动填充。
4. 将“Employee_Name”字段拖至第二列的详细信息行,使其位于 Employee_Id 字段旁边。
5. 将 Age 字段拖至第三列的详细信息行,使其位于 Employee_Name 字段旁边。
6. (可选)单击第一行左侧的“表格表头”按钮,并选择“粗体”格式样式。
7. 在“文件”菜单上,选择“全部保存”。
向应用程序添加 ReportViewer 控件
1. 在解决方案资源管理器中,右键单击 Default.aspx,选择“视图设计器”。
2. 将工具箱中的“数据”组中的 ReportViewer 控件拖至页面。
1) 如果“数据”节点下没有ReportViewer图标,则右击“数据”节点,选择“选择项”。
2) 在.NET Framework组件选项卡下选中命名空间为Microsoft.Reporting.WebForm下的ReportViewer,点击确定。
3. 通过单击网页上 ReportViewer 控件右上角中的三角形,打开“ReportViewer 任务”智能标记面板。在“选择报表”框中,选择 Report.rdlc 的完全限定文件名。
选择报表后,将自动创建报表中使用的数据源的实例。并生成代码以实例化每个 DataTable(及其 DataSet 容器)以及与报表中使用的每个数据源相对应的 ObjectDataSource 控件。此数据源控件自动进行配置。
注意
若要了解为什么 ASP.NET 使用 ObjectDataSource 控件而不使用 SqlDataSource 控件(即使基础数据源可能是数据库或某些其他强类型化的数据存储),请参阅为 ReportViewer 报表创建数据源。
编译和运行应用程序
1. 设置Default.aspx为起始页,按 Ctrl+F5 在不调试情况下运行页,或者按 F5 在运行页时进行调试。
在编译进程中包括对报表进行编译,并将发现的所有错误(例如,报表中使用的表达式中的语法错误)添加到“任务列表”。
网页显示在浏览器中。ReportViewer 控件显示报表。可以使用工具栏浏览报表、缩放及导出到 Excel。
2. 关闭浏览器。