【问题标题】:Crystal Reports Parameter Case ChangeCrystal Reports 参数大小写更改
【发布时间】:2014-05-20 11:34:33
【问题描述】:

我想在 Crystal 报表中屏蔽一个参数。

目前我有一个需要更改为字符串的数字。

因此,例如该字段中的 4 种数据类型是 1 2 3 4

我用

案例 1:“是”
案例2:“否”
案例 3:“也许”
案例4:“审批”

现在我需要使用动态参数对其进行过滤,但它在下拉列表中显示为 1 2 3 4

我怎样才能让它像我运行报告时那样显示。

【问题讨论】:

  • 你能解释更多...截图会有所帮助
  • @Siva,我没有截图,但我已经尝试在上面更好地解释它。
  • 所以你想在参数中将数字屏蔽为字符串?您在数据库中有数字,在 CR 中您将其更改为字符串...现在您想要动态参数中的这些字符串?这是正确的吗?
  • 据我所知,当您使用动态参数时,参数中显示的数据来自数据库......所以当您转换为字符串时,可能无法显示动态参数
  • 一种出路是将参数作为static 提供为字符串,在 CR 中您将其屏蔽为编号并在报告中使用。

标签: crystal-reports reporting crystal-reports-2010


【解决方案1】:

你可以使用不止一种方法来解决它,最有效的方法是从数据库中,在选择查询而不是选择编号中使用:

SELECT
  CASE WHEN Number = 1 THEN 'Yes'
  CASE WHEN Number = 2 THEN 'No'
  CASE WHEN Number = 3 THEN 'Maybe'
  CASE WHEN Number = 4 THEN  'Approval' AS Number

或者你可以在你的报告中添加一个参数值,例如 @Number 和字符串数据类型并从后面的代码中填充它

Select Case dropdownlist.selectedvalue
      Case 1
       rpt.SetParameterValue("@Number", "Yes")

      Case 2
       rpt.SetParameterValue("@Number", "No")

      Case 3
       rpt.SetParameterValue("@Number", "Maybe")

      Case 4
       rpt.SetParameterValue("@Number", "Approval")

或者从报表本身右键单击报表中的字段编号并选择格式对象并选择名为(显示字符串)的属性的公式 并添加此代码:

 If {Report Field} = 1 THEN 
 {Report Field} = 'Yes'
 ELSE 
 IF {Report Field} = 2 THEN
 {Report Field} = 'No'
 ELSE {Report Field} = 3 THEN
 {Report Field} = 'Maybe'
 ELSE
 IF {Report Field} = 4 THEN
 {Report Field} = 'Approval'

并保存您的代码。

【讨论】:

    【解决方案2】:

    在参数提示中添加4个默认值

    Value  Description
    1      "yes"
    2      "No"
    3      "Maybe"
    4      "approval"
    

    然后选择标志只显示描述。在参数对话框中,您应该会看到一个包含 4 个字符串的下拉列表,但您会收到 4 个数字之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 2014-01-03
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多