查询项目(Class Library)
这个项目把SQL语句封装成程序集,供报表服务器反射调用之,返回数据集给客户端。
Quotation类的代码如下

您可能已经注意到了,GetCustomerList方法就是以下SQL语句的C#封装
至此,所有的服务器端项目都设计完毕,您需要部署Extension项目。
如果不熟悉Extension的部署,请参考这篇文章
Reporting Services Extension:File Share Data Processing Extension全程指南
下面进入应用开发部分,打开BIDS,新建一个报表项目,添加报表项。
在数据连接字符串部分,糊弄选开发的Extension,输入本机服务器地址作为连接字符串

撰写查询语句

执行查询,刷新字段以用来设计报表

下面的步骤与以通常开发报表的方法没有任何不同。
进入布局页面,设计报表

预览一下效果,输入参数CustomerID:TRADH

这样,终于实现了这种结构的报表设计扩展。
关于报表设计和开发,我还整理了如下文章
实现多国语言的Reporting Services项目 ,用于讲解与报表全球化相关的设计方法
如果你不熟悉基本的报表开发,设计流程,这里有详细的介绍
ASP.NET RDLC 报表开发详解
如果部署时有问题,可参考这篇文章
部署含有ReportView的控件的ASPX页面时出现错误
这个系列的文章比较杂乱,没有系统化。
园子里有朋友征求关于Reporting Services的开发教程或总结,这个主意不错。很早以前,园子里有位报表的高手:蜡人张。我那时就是看他的文章,才逐步熟悉Reporting Services技术的。真的很感激这些无私奉献的朋友。
关于验证扩展(Forms Authentication),可以参考这位朋友的文章:
实现SQL2008 Reporting Service的表单验证
还有其它方面的扩展。比如做一个报表Item的扩展,做一个barcode,作为报表项,与常用的Table,Matrix一样,被报表重复使用。关于这个主题,你可以参考PolygonsCustomReportItem
链接:http://www.cnblogs.com/JamesLi2015/archive/2010/03/29/1699972.html