【问题标题】:How to call StoredProcedure from CrystalReport?如何从 Crystal Report 调用存储过程?
【发布时间】:2009-02-16 08:29:48
【问题描述】:

我想从水晶报表中调用存储过程并将检索到的值分配给 报告中的字段?

有什么建议吗?

【问题讨论】:

    标签: c# .net stored-procedures crystal-reports


    【解决方案1】:

    从水晶报表中调用存储过程,

    将报表的数据源设置为存储过程(数据库专家向导)。 该程序必须满足这些要求

    1- 您必须创建一个包来定义 REF CURSOR(将被检索的字段类型)。

    2- 过程必须有一个 REF CURSOR 类型的参数。这是 因为 CR 使用此参数来访问和定义 存储过程返回。

    3- REF CURSOR 参数必须定义为 IN OUT(读/写 模式)。

    4- 参数只能是输入(IN)参数。 CR 不是为工作而设计的 带 OUT 参数。

    5- REF CURSOR 变量必须打开并在 过程。

    6- 存储过程只能返回一个记录集。这个结构 根据参数,记录集不得更改。

    7- 存储过程不能调用另一个存储过程。

    【讨论】:

      【解决方案2】:

      试试 Database Expert ->(左树)当前连接 -> 添加命令

      Add Command To Report 屏幕中输入如下内容:

      EXEC dbo.StoredProcedure (param1, param2 ...)
      

      在同一屏幕中,您可以为此查询指定参数。

      因此,将根据查询命令创建新的数据源。您可以将其用作普通数据源,并将字段值放置在报表区域中。

      【讨论】:

        【解决方案3】:

        只需像添加表格或视图一样添加它。参数(如果有)将添加到您的报告中。

        【讨论】:

          【解决方案4】:

          EXEC dbo.StoredProcedure param1, param2, ...

          不输入括号。

          【讨论】:

            【解决方案5】:

            将一些参数从 Crystal Report 传递到 DB 包。

            在水晶报表中新建一个“命令”,参数的“名称”与水晶报表其他“命令”中已有的参数“名称”相同,即可正常存储过程。

            例如:您正在使用“sum”函数并收到结果,并且您希望存储过程以将此数字转换为您的语言中的“阅读方式/发音”,并且在您的数据库中之前存在此函数。让我们去做吧。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-12-17
              • 1970-01-01
              相关资源
              最近更新 更多