最近几天在学习Report Service,看了好多,感觉几天的了解连冰山一角都不及。不过以后要养成积累的习惯,回头再忘了就尴尬了。。。。。。
总结:
1.了解:报表的开发据目前所知,看业务大小,业务不大或者对这方面要求不是太高的,可以用VS里带的控件reportviewer,根据指导设计新报表。反之,可能需要架设报表服务器,用SQL Server里的Business Intelligence Development Studio开发报表,部署到报表服务器(需先在服务器上配置Reporting Services 配置管理器),然后再在开发环境里用reportviewer调用,从而在页面呈现。
2.Reporting Services 配置管理器:主要配置数据库等基础信息,需注意的是,里面有两个URL,一个是Web服务器URL,一个是管理器URL,顾名思义,在部署和调用时,需要使用服务器URL,登录管理器URL,则是对报表服务器的管理,包括查询、删除,配置东西,管理角色等。这个搞不清楚,很可能会出现用户名和密码输入乱七八糟的问题。
3.Business Intelligence Development Studio:专门用于开发报表的工具,在基础教程的引导下,建立基础的报表没什么大问题,不过深入的就不是一拍即合了,比如表达式这一块,自我感觉不太好弄,如果掺和下业务可能需要费点脑筋了。
4.ReportViewer使用:两种使用方式,一种直接在指引下设计新报表(暂未学到),一种用于呈现报表服务器上的报表。第二种里面涉及一个到一个报表服务器的凭据接口实现,具体代码如下:
public class EasteaReportCredentials : IReportServerCredentials
{
private string _userName;
private string _password;
private string _domin;
public EasteaReportCredentials(string userName, string password, string domin)
{
_userName = userName;
_password = password;
_domin = domin;
}
/// <summary>
/// 提供用于连接到配置为使用 Forms 身份验证的报表服务器的信息。
/// 如果应该使用 Forms 身份验证,则为 true;否则为 false。
/// </summary>
/// <param name="authCookie"></param>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <param name="authority">对用户进行身份验证时要使用的机构,如 Microsoft Windows 域。</param>
/// <returns></returns>
public bool GetFormsCredentials(out System.Net.Cookie authCookie, out string userName, out string password, out string authority)
{
authCookie = null;
userName = _userName;
password = _password;
authority = _domin;
return false;
}
/// <summary>
/// 获取或设置当 Microsoft.Reporting.WebForms.ReportViewer 控件连接到报表服务器时要模拟的用户的 WindowsIdentity。
/// </summary>
public WindowsIdentity ImpersonationUser
{
get { return null; }
}
/// <summary>
/// 获取或设置向报表服务器进行身份验证时使用的网络凭据。
/// </summary>
public ICredentials NetworkCredentials
{
get
{
return new NetworkCredential(_userName, _password, _domin);
}
}
}
其次就是控件的配置问题了
对于初学者而言,这些最基础的东西也可能要研究小半天了吧
当搞整出来界面有点小成绩的时候,总会追求下完美,比如表头固定。。。,这一下子才会发现根据设置没效果,问了别人半天终于才明白,报表控件有普通表,分组表,矩阵一说,有的可以呈现效果,有的不可以,初学者还是好好补下基础吧