【问题标题】:Parameter order issue when using stored procedure使用存储过程时的参数顺序问题
【发布时间】:2012-09-23 11:48:57
【问题描述】:

我正在使用 Crystal Reports 9 - 我构建了一个基本上使用存储过程并具有 3 个参数的报表:A、B、C,它们也是报表中的提示。我也有提示 D 和 E,它们 传递给存储过程。当我正常运行此报告(通过 CR9)时,提示以正确的预期顺序显示:A、B、C、D、E。但是,我的客户在使用水晶报告查看器时遇到了奇怪的行为:提示的顺序显示的是:D、E、A、B、C。我不确定这是否是一个错误:我尝试重新添加提示,首先将它们全部删除,然后按照我想要的顺序重新添加提示出现,但他们仍然看到不正确的顺序。我也试图让他们更新他们的查看器版本,他们也看到了同样的问题。

另请注意,它不是按字母顺序对提示(在查看器中)进行排序。我的例子只是为了论证。

为什么查看器会以不同的顺序显示提示?这个问题似乎只在我链接到存储过程时才存在。

谢谢。

【问题讨论】:

    标签: crystal-reports


    【解决方案1】:

    我不知道您的报告中是否有可能,但请尝试以下几个建议:

    1. 使用组
    2. 使用一系列子报表(“A”后的每个提示一个)

    【讨论】:

    • 但这会如何影响提示的顺序?
    • 使用子报告可以让您按照您想要的顺序提取每个提示所需的信息。因此,提示“A”将为您提供有关“A”组内主报告的信息,“B”将是组页脚“A”1中自己的子报告,“C”将是它自己的子报告组页脚“A”2...
    • 我说的是在运行报表之前实际呈现给用户的提示的顺序(不是报表本身出现的顺序)
    • 抱歉,我认为它的显示方式不正确。我知道当您运行报告时它显示正确,但是用户看到的是显示他们在字段资源管理器下的顺序吗?如果它们显示您看到它们的方式,我唯一能想到的就是尝试取消选中“保存数据”选项,保存并关闭报告。重新打开报表,重新勾选“Save with Data”并再次保存报表。看看这是否解决了问题。
    • 如果参数在字段资源管理器中按照用户看到的方式排序。他们将需要重新排序。我不确定如何在 CR9 中执行此操作,在 CR10 中您可以右键单击参数并移动到您想要的位置。
    【解决方案2】:

    我想你只是从Database Expert 中选择Stored Procedure 并点击它,设置报告源。

    你可以改为:

    • 打开Database Expert
    • 点击Add Command
    • 从右侧面板按正确顺序添加您需要的参数(A、B、C 以及存储过程不需要的 D、E)
    • 键入与Exec MyStoredProcedure ('{?ParamA}','{?ParamB}', {?ParamC} );类似的查询
      [如果param是字符串(ParamA, ParamB)需要用'封装,如果是数字(ParamC)就不用封装]

    参数为:

    • 以正确的顺序提示用户
    • 根据需要传递给存储过程
    • 如有需要,可在报告逻辑中使用

    【讨论】:

    • 这是一个非常好的建议:不幸的是,有一些限制,例如我不能自己重新排序参数(它们似乎是强制按字母顺序排列),这有点像交易-断路器。正如我所说的,A、B、C、D、E 是一个例子,不是按字母顺序显示的。
    • 如果不使用 Param D 和 Param E 似乎也会被删除。
    • 这只是一种解决方法,但您可以使用 params 前缀,直到找到解决方案:1- ParamB、2- ParamE、3-ParamA 等等
    • 我想到了这一点,但这与其他报告不一致(部分原因首先是排序问题)。不过,感谢您的建议。
    猜你喜欢
    • 2010-10-31
    • 2011-02-02
    • 2013-06-17
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多