SSRS使用ReportItems调用存储过程!文本框。也许自定义报告代码?

时间:2013-01-29 16:11:45

标签: reporting-services ssrs-2008

我需要在报告期间调用存储过程以将值插入表中。这些值是添加的数据集中的字段的结果。例如,我有一行值,最右边的列是"ReportItems!TextBox1.Value + ReportItems!TextBox2.Value ..."这会在报告中给出正确的总和。现在我需要使用此值作为参数调用过程。

使用存储过程作为数据集,我无法引用ReportItems!由于我们正在使用的报告基础架构,我也无法创建额外的报告参数(甚至是内部或隐藏),这些参数可能是数据集的结果。

我知道使用自定义报告代码,我可以调用存储过程并引用ReportItems,但我无法找到正确的语法。我不熟悉VB.net,所以请具体说明。如果我能得到一个如何调用的示例:Procedure TEST_INSERT(ReportItems!TextBox1.Value),我将能够弄清楚如何实现它。

我使用oracle后端作为我的数据源。 感谢

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望使用报表中使用表达式计算的值进行数据库更新。我对此的回答将是三重的。

首先:不要这样做!

第二:seriously, don't do it!!报告服务并不适用于此类任务,您很可能正在查看XY-Problem

第三,如果你仍坚持这样做,我能想到的最简单的方法就是通过使用单独的报告来触发更新,并将你之后的值传递给该报告的参数。在主报表中,您可以在单元格上设置单击操作,其中包含调用报表的总计,并在参数中使用相同的值。

类似的设置也可以起作用,是根据您提到的具有相同“sum”表达式的第一个数据集创建参数,并将其传递给另一个数据集。

但是:不要这样做! ; - )

答案 1 :(得分:0)

我会在报表服务中设置一个数据集,该数据集在oracle中调用更新或插入函数并返回值/ s。通过这种方式,您可以发送需要计算的总数,并生成一个结果,告诉用户更新是否成功。

执行此操作没有特殊方法,只需选择或输入您的过程名称并刷新字段即可更新参数。请参阅Oracle stored procedure in SSRS

同样使用此方法,您可以在oracle中运行存储过程,更新表并显示结果。