我需要将一个键值列表传递给SQL-Server中的存储过程,然后该存储过程将返回Crystal Report所需的值。
不是发送逗号分隔列表然后解析它,而是建议我使用表类型。所以,我已经将表类型定义为简单的整数:
CREATE TYPE [dbo].[SiteIdentifiers] AS TABLE
(
[SiteId] BigInt,
PRIMARY KEY ([SiteId])
)
但是,现在我需要修改我的Crystal Report以将其作为输入参数。 (存储过程以...开头
CREATE PROCEDURE [dbo].[sp_SiteReport]
@SiteIds [dbo].[SiteIdentifiers] ReadOnly
AS
报告主要使用ColdFusion或C#.net调用,因此我认为在向表类型添加ID时不会出现问题。但我不知道如何在Crystal中定义该参数。 “创建新参数”向导中的“类型”列表非常缺乏。
答案 0 :(得分:1)
我认为你没有正确地使用Crystal中的Parameter概念。据我所知,它最适合用于手动输入数据(并且您尝试传递多维数组,而不是最好地使用它)。我建议:
答案 1 :(得分:0)
通常,通过将报告指向过程来创建运行过程的Crystal报表 - 在报表中自动生成过程的所有必需参数。如果您在Crystal Reports设计器中完成此操作而没有生成表输入参数的报告,那么我认为您不能这样做。
作为使用逗号分隔列表的另一种选择,您是否考虑过:
答案 2 :(得分:0)
据我所知,这是不可能的。 Crystal不会从其他应用程序(如SQL Server)中获取无法识别的数据类型。