什么是调试SSRS最好的策略是什么?
-
22-07-2019 - |
题
我在寻找各种方法来追查其中的SSRS错误正在发生。
我有一个报告,宽约90列具有多个公式。那我遇到的问题是,在公式之一,也是由零错误鸿沟。我已经在这个实现的答案从罗伯特·哈维的问题但我仍然得到错误。我知道答案的作品,因为我已经测试了小报告。
所以现在的问题是:如何在地球上,你确定将错误在SSRS存在的时候SSRS只报告发生错误?
修改强>所显示的错误是
点击错误报告处理零错误中遇到结果不能为数据集MainReport结果除以读取下一个数据行期间occoured本地报表处理过程中发生错误
解决方案
修改强>结果 而不是使用IIF语句和其他人,我会reccomend执行以下操作...添加自定义功能,以您的报表,转到报表属性和代码标签。创建以下。具体地识别所引发错误的领域,你可以改变这个返回一个字符串,也许“#OOOOOOPS”,所以它伸出的报告。
Public Function SafeDivision(ByVal top As Decimal, ByVal bottom As Decimal) As Decimal
If bottom = 0 Then
Return 0
Else : Return top / bottom
End If
End Function
添加此功能后,去为你的所有,将发生分裂的字段的表达图。您可以通过键入执行这个新创建的功能:
=Code.SafeDivivision(CDbl(1.24), CDbl(0))
<强> ORIGINAL 强>结果 如果您在Visual Studio中运行报表,它告诉你哪些特定的文本/标签/场计算失败?这应该帮助找出其中的问题是从哪里来的,但你也可以通过查看下面的代码,确保你从来没有在分母0执行除法...
//myBottom would be the value of the denominator
//myTop would be the value of the numerator
= IIF(myBottom <> 0, myTop / myBottom, "")
其他提示
<强>跟进强>结果 这个问题最终被SQL查询。作为SQL查询的一部分,我作为在类似于下列条款。
Select ID, Name, price/kg as unitpice from products where ID In (@ProductIds)
SSRS使用exec sp_executesql
和与string.replace注入ID的入IN子句。
我的问题是我会在运行SQL工作室经理查询。与所有的变量输入并预期它会工作。但SSRS下它会失败,除零错误,并没有真正的明确指示在出现错误。
我所作的报告的副本,删除的项目一个接一个,直到有litrally没有留在报告渲染,它仍然产生错误后,我把我的注意SQL查询。
在那里,错误已存在的。我只找到它使用SQL Profiler来找出SSRS在实际运行后。
这之后,它被删除问题的行并返回分的单独的部件,并通过该RSolberg建议的功能运行它的relativly容易解决。