最近开始使用ReportingService开发一个报表项目,查了很多资料,觉得有些东西还是记下来比较好,特开此篇。
1. 动态生成SQL文查询。
问题:报表本身比较简单,不过需要根据输入的查询条件,动态生成SQL文。
解决方法:在客户端根据输入的查询条件,生成SQL文。将此SQL文作为参数,传给服务端,服务端执行SQL文,得到相应的结果。要达到上述目的,需要将对应的DataSource的CommandText设置成参数获得。
<CommandText>=Parameters![参数名].Value</CommandText>
2. 根据用户选择,显示特定的项目。
问题:只在报表上面显示用户感兴趣的项目。
解决方法:也是通过参数,首先,设置每列的Hidden属性为从参数取得 [ =Parameters![参数名].Value],在客户端根据用户的选择,设定相应的参数值为false或者true,传递给服务端。这个方法并没有把不需要显示的项目从定义文件中删除,只是隐藏起来不显示而已,查了很久资料,没有找到其他方法,如果谁有好的方法,请告诉我。
3. DateFormat枚举类型
成员名称 说明GeneralDate 对于实数,显示一个日期和时间。如果数字没有小数部分,则仅显示日期。如果数字没有整数部分,则仅显示时间。日期和时间显示由计算机的区域设置确定。该成员等效于 Visual Basic 常数 vbGeneralDate。LongDate 使用在计算机的区域设置中指定的长日期格式显示日期。该成员等效于 Visual Basic 常数 vbLongDate。LongTime 使用在计算机的区域设置中指定的长时间格式显示时间。该成员等效于 Visual Basic 常数 vbLongTime。ShortDate 使用在计算机的区域设置中指定的短日期格式显示日期。该成员等效于 Visual Basic 常数 vbShortDate。ShortTime 使用在计算机的区域设置中指定的短时间格式显示时间。该成员等效于 Visual Basic 常数 vbShortTime。
4. 遗留问题:报表的动态布局问题。用户选择的项目较少的时候,原先设定的默认大小就不适用了,正在研究是否可以动态布局报表上的各个项目,如果谁有好的提案,请给我留言。