概念
SQL Azure Reporting 把云端报表作为服务来提供,构建于SQL Server Reporting Services 和 SQL Azure 技术之上。诸如SQL Azure Reporting此类云端报表服务具有许多优势,包括快速服务提供,成本效益,拓展性,高可用性以及减少报表服务器的管理费用,并能安全的访问,查看和管理报表。SQL Azure Reporting
- § 在web应用和桌面应用中嵌入Visual Studio Report Viewer ADO.NET Ajax 控件或 Windows Form 控件来查看SQL Azure Reporting Service内的报表。
- § 各类应用都可以利用 SQL Azure Reporting SOAP API 来管理和获取报表内容。
- § 使用SQL Azure Reporting Service Portal。
因为 SQL Azure Reporting Service构建于 SQL Server 2008 R2 Reporting Service之上,我们便可以使用熟悉的工具,例如SQL Server Integration Studio,Visual Studio Report Viewer等。SQL Azure Reporting Service其实是云端的远程 SQL Server Reporting Service。
创建一个新的SQL Azure Reporting
打开Windows
选择同意服务条款,选择订购方式。此处我选择Windows Azure Pass 订购方案。
最后一部,复制邀请码,输入SQL Azure Reporting Service的密码。用户名会自动生成。
稍等之后,新的 SQL Azure Reporting Server以及Reporting Service URL 和用户名都会显示在门户上。通过工具栏按钮可以重置密码。.
将报表部署至SQL Azure Reporting
如果您熟悉SQL Server Reporting Service,那么您会发现本章与本地的报表服务非常类似。首先,打开SQL Server Business Intelligence Development Studio ,创建新的Report Server Project。
创建一个共享数据源,报表数据便会从该数据源获取。数据源应该选择SQL Azure,但是此处也可以选择 打开了端口的本地 SQL Server 或其他数据库。此处,我选择和报表服务位于同一数据中心的SQL Azure 数据库 。 在 Credentials 标签页,输入上文的用户名和密码。
SQL Azure Reporting CTP 只在北美数据中心内可用,所以最好选择同一数据中心内的数据库,避免外部传输费用。
创建一个简单的报表,检索回Members数据表的所有的记录。在数据源选择步骤,选择之前的共享数据源。输入 T-SQL语句来获取数据。报表如下:
为了将报表部署至SQL Azure Reporting Service ,我们需要更新一下项目属性。右击项目,选择属性。在Target Server URL 项内,填入SQL Azure Reporting报表服务器的URL。回到开发者门户,选择左侧的报表节点,复制Web Service URL ,并在URL最后填上 "/reportserver" 。
之后,点击项目的 Deploy 菜单项, Visual Studio会编译报表服务,并上传至报表服务。这一步,会提示需要输入SQL Azure Reporting Service 的用户名和密码。大约一分钟后,报表并会部署成功。
在浏览器中查看报表
SQL Azure Reporting 允许我们在浏览器中查看云端部署的报表。我们输入Web Service URL ,同样在最后填上 "/reportserver" 路径,并以 HTTPS 协议打开,我们便能看到SQL Azure Reporting Service 登陆页面。
输入用户名和密码,可以看到目录和报表清单。选择报表, Report Viewer 便会开始生成报表。
通过Report Viewer 在Web Role内查看报表
ASP.NET 和 Windows Form Report Viewer 一样能够用于查看SQL Azure Reporting Service 。我们可以创建一个ASP.NET Web Role ,添加Report Viewer 控件,所需的更改如下:
- § 将Processing Mode 改为 Remote。
- § 将Server Remote目录下的 Report Server URL 设为上文SQL Azure Reporting Web Service URL 并加上 "/reportserver"路径。
- § 将 Report Path 设为我们希望显示的路径。报表名不应该包含拓展名。举例, SqlAzureReportingTest 项目中名为MemberList.rdl 的报表,那么路径应为/SqlAzureReportingTest/MemberList。
下一步输入SQL Azure Reporting Credentials。我们用一下类来封装报表服务器凭证。
private class ReportServerCredentials : IReportServerCredentials
{
private string _userName;
private string _password;
private string _domain;
public ReportServerCredentials(string userName, string password, string domain)
{
_userName = userName;
_password = password;
_domain = domain;
}
public WindowsIdentity ImpersonationUser
{
get
{
return null;
}
}
public ICredentials NetworkCredentials
{
get
{
return null;
}
}
public bool GetFormsCredentials(out Cookie authCookie, out string user, out string password, out string authority)
{
authCookie = null;
user = _userName;
password = _password;
authority = _domain;
return true;
}
}
在 Page_Load 方法内,将其传递给 report viewer。
protected void Page_Load(object sender, EventArgs e)
{
ReportViewer1.ServerReport.ReportServerCredentials = new ReportServerCredentials(
"<user name>",
"<password>",
"<sql azure reporting web service url>");
}
最后部署至 Windows Azure 效果如下:
总结
本文介绍了SQL Azure Reporting CTP 。和其他Windows Azure特性一样, SQL Azure Reporting 与SQL Server Reporting非常相似。我们可以使用现有熟悉的工具来构建,部署以及显示报表。SQL Azure Reporting仍然出于 CTP 阶段,这意味着:
- § 免费。
- § 没有技术支持。
- § 只能用 北美数据中心
通过如下链接获得更多信息:
- §
- §
本文翻译自: