虽然工作经验相当的长,但是之前在SSRS上还没有象今天这样的经验。这只是工作经验的一点记录。

1. 定义DataSet

定义DataSet的时后,可以采用Text的方式。用Text的方式可以用一段比较复杂的DB script来做复杂处理。可以在SSMS那里写好DB script,调试好再copy paste到Text框里。Text框和SSMS那里的略有差别,在Text框里,如果一个@xxx形式的变量没有相应的declare, 则会被自动定义成一个参数(成为报表的参数和Query的参数,而且系统自动将这两个参数连接起来)。而这个特性在SSMS里是不存在的。SSMS的数据库脚本要求所有的变量都有declare。所以如果你希望某些变量成为SSRS里的一个参数,再copy paste的时候,可以把这些变量的declare去掉,再拷贝过去。

2. Custom code

SSRS是基于VB的。Custom code必须写VB代码。但是这个地方不象Visual studio那里可以进行语法提示。 我们在Visual Studio创建一个VB.net 的工程,可以在Visual Studio写好Function的代码。编译好。再copy paste到Custom code框中。

调用Custom code中定义的Function, 在报表中写Code.<Functionname>(parameters)

3. 输出Excel时出现hiding row, merged row

在网络上找了一下。还是微软官方的一个knowledge page写得比较清楚。默认为inch或者厘米为单位,在设计器里会出现很多小数点后很多位的小数。微软说这是因为转换成excel时,转换器用的是points为单位,除不近时,就会用hiding row来补偿。我们要用points为单位,可以避免hiding row。定义高度和宽度的时候,用10pt,2pt之类的。

4. 输出Word时选择正确的Page size

首选在Report property里选择好Page size, 如果是Letter, 宽8.5inch, 高11inch, 定义好白边margin上下左右,比如各1inch, 那么在设计器里,Body的宽度就是8.5 - 1 -1 = 6.5inch, 高度是11 - 1 -1 = 9inch。于是选择Body, 再在属性框里设定其Width, Height。这样设定的报表,输出成Word时就是默认用的Letter纸张。

5. Subreport could not be shown错误的调试

Subreport could not be shown可能因为很多原因产生。我们不能简单地认为是某种原因。其实一个最根本的解决办法就是将报表部署到SSRS 服务器上,然后访问报表,当问题显现后,我们可以到SSRS服务器上 C:\Program Files\Microsoft SQL Server\#SSRS Instance Name#\Reporting Services\LogFiles目录找到log文件。看log文件里的详细错误信息。这样你就可以知道出现错误的根本原因了。从而针对性的解决。当然了,这个解决办法是针对RDL的,RDLC的报表是无法直接用这个办法的。除非你把RDLC转成RDL。

6. 一个SQL server Split string的脚本

在实际工作中用到了这个。存储过程返回的是一个用分割符分割的串。所以这个大量的用这个小巧的方法。

declare @Input varchar(max)
set @Input = '9,5,2,4,65,7,89,4,2,3,24,33,98'
declare @delimiter varchar(max)
set @delimiter = ','
declare @sql varchar(max)
set @sql = 'select ''' + REPLACE(@Input, @delimiter, ''' as stringValue union all select ''') + ''' as stringValue'
exec(@sql)

这里用到了replace和union all的主意。比起那些专门写一个function的idea,相对来说轻量一些。

最新文章

  1. java工厂模式
  2. Hibernate报错:org.hibernate.ObjectNotFoundException: No row with the given identifier exists 解决办法
  3. IDEA -14 注册码生成工具
  4. ios外包公司——技术分享:IOS开发教程
  5. EF之外键Include() left join
  6. [Java] SSH框架笔记_S2SH整合步骤
  7. acdream LCM Challenge (最小公倍数)
  8. VS2010 C# 调用Web Service .
  9. 用document.title=“xxx”动态修改title,在ios的微信下面不生效的解决办法!
  10. 重探 DFT
  11. 免费SSL证书PK付费SSL证书 花落谁家
  12. azkaban使用--邮件发送配置
  13. 花神的数论题(这题...哎。数位dp咋就这么 not naive 呢)
  14. 调用系统命令之subprocess模块
  15. 内联汇编中的asm和__asm__
  16. 【转载】 opencv, PIL.Image的彩色图片维度 &amp;&amp; caffe和pytorch的矩阵维度
  17. hasura graphql-engine集成pgbouncer 连接池工具
  18. 对象的释放Dispose和Close对比
  19. 【python】泰语分词器安装
  20. LTE:EPC

热门文章

  1. MyEclipse 6.5 代码自动提示功能配置教程
  2. Mathout
  3. 解决WordPress后台安装主题、插件图片不显示的问题
  4. 第12章 纤程(Fiber)
  5. Unity的物理材质
  6. Adobe Scout 入门
  7. linux部署的java应用,浏览器访问时,报域名解析错误
  8. mongoVUE1.5.3 破解方法
  9. msg url
  10. 003医疗项目-关于&lt;context:property-placeholder location=&quot;classpath:db.properties&quot;/&gt;的问题