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