【发布时间】:2009-02-16 08:29:48
【问题描述】:
我想从水晶报表中调用存储过程并将检索到的值分配给 报告中的字段?
有什么建议吗?
【问题讨论】:
标签: c# .net stored-procedures crystal-reports
我想从水晶报表中调用存储过程并将检索到的值分配给 报告中的字段?
有什么建议吗?
【问题讨论】:
标签: c# .net stored-procedures crystal-reports
从水晶报表中调用存储过程,
将报表的数据源设置为存储过程(数据库专家向导)。 该程序必须满足这些要求
1- 您必须创建一个包来定义 REF CURSOR(将被检索的字段类型)。
2- 过程必须有一个 REF CURSOR 类型的参数。这是 因为 CR 使用此参数来访问和定义 存储过程返回。
3- REF CURSOR 参数必须定义为 IN OUT(读/写 模式)。
4- 参数只能是输入(IN)参数。 CR 不是为工作而设计的 带 OUT 参数。
5- REF CURSOR 变量必须打开并在 过程。
6- 存储过程只能返回一个记录集。这个结构 根据参数,记录集不得更改。
7- 存储过程不能调用另一个存储过程。
【讨论】:
试试 Database Expert ->(左树)当前连接 -> 添加命令
在 Add Command To Report 屏幕中输入如下内容:
EXEC dbo.StoredProcedure (param1, param2 ...)
在同一屏幕中,您可以为此查询指定参数。
因此,将根据查询命令创建新的数据源。您可以将其用作普通数据源,并将字段值放置在报表区域中。
【讨论】:
只需像添加表格或视图一样添加它。参数(如果有)将添加到您的报告中。
【讨论】:
EXEC dbo.StoredProcedure param1, param2, ...
不输入括号。
【讨论】:
将一些参数从 Crystal Report 传递到 DB 包。
在水晶报表中新建一个“命令”,参数的“名称”与水晶报表其他“命令”中已有的参数“名称”相同,即可正常存储过程。
例如:您正在使用“sum”函数并收到结果,并且您希望存储过程以将此数字转换为您的语言中的“阅读方式/发音”,并且在您的数据库中之前存在此函数。让我们去做吧。
【讨论】: