gpt4 book ai didi

sql-server - SSRS 2008 : error message saying my parameter doesn't exist but it clearly does?

转载 作者:行者123 更新时间:2023-12-01 19:57:27 25 4
gpt4 key购买 nike

我有一份报告,其中包含大约 10 个参数、大约 10 个数据集和一个数据源。我打了很多字,但我真的需要帮助,所以我想我会尝试从一开始就尽可能多地提供有关问题的信息。

让我们简化一下,假设这些是所有内容的相关名称,并且报告获取基本员工信息:

  • 参数
  • 设施ID:guid 或uniqueidentifier 格式的文本,这是隐藏和传递的,以便报告的最终用户只能查看他们自己设施的信息;单值参数,非空非空,隐藏,文本
  • startDate:开始日期范围,假设我希望我的报告包含从今年 1 月 1 日开始的数据;单值参数,非空非空,可见,日期时间
  • endDate:日期范围的结束,假设是今天/现在;单值参数,非空非空,可见,日期时间
  • View 选项 :三个硬编码值(标签,值)(“当前员工”,1)和(“过去员工”,2)和(“移动设施的员工”,3);多值参数(所以全选是一个选项),不为空,不为空,可见,文本
  • personID:基于数据集 getListOfNames,其中标签是员工姓名,值是他们的 personID(guid/uniqueidentifier);单选,不为空,不为空,文字可见
  • 我的数据集
  • getListOfNames:这将获取在给定日期范围内的公司人员列表,以及他们的员工状态在 viewOption 参数值中的位置(因此它可以只是一个数字,也可以是最多三个数字)。这是一个存储过程,但我已经将它设置为通过传递它 join(parameter, "~") 然后在存储过程中将其分离来处理多值参数。这适用于其他 5 个报告。
  • getReportInfoOnSelectedPerson:主体查询;在用户选择他们想要数据的员工后,这将获取该 personID 和日期范围并填充主表。

  • 问题:
    SSRS 说 viewOption 不存在。但我在左侧的参数文件夹中看到了它。我在参数下输入表达式时看到它。 Parameters!viewOption.value 下没有波浪形的红线。但是,当我尝试将它作为 getListOfNames 数据集使用的参数的值时,它出错了。如果我把它放在 getReportInfoOnSelectedPerson 数据集中并以完全相同的方式使用它,SSRS 就可以了。哇?所以......我已经检查了 rdl,一切都很好(声明了实际参数,在数据集引用中使用了它,一切)。这只是一个数据集。我有一个类似的报告,它使用相同的数据集、相同的基本参数,并且该报告很好。我尝试将数据集参数的值设置为 1 或其他值,这很好,但是当我尝试将其设置为 Parameter!viewOption.value 时,它​​会出错..... 现在,上面我说我通常将存储过程传递给一个 Join在带有波浪号的参数上 ~ 但我试图保持简单,要么让它在一般情况下正常工作(通过将多值 viewOption 参数的第一个值传递给它,或者将该参数转换为单个选择并仅传递 .值)但连接也不起作用。所有这些都适用于另一个数据集,它也是一个存储过程。

    这是我的错误:
    报告处理期间发生错误。 (rsProcessingAborted) 查询参数“@viewOption”的值表达式包含错误:表达式引用了报告参数集合中不存在的参数。 (rsRuntimeErrorInExpression)


    这清楚地表明我的参数不存在,但我可以看到它......无处不在。如果我将其他数据集的参数值之一分配给 viewOption 参数,它可以正常工作而不会出错。我已经检查了 rdl。

    我以前遇到过这个问题,它通过删除参数和数据集并再次创建它们来解决(为了安全起见,我将它们都重命名了)。这次不行。

    我很沮丧。请帮忙....

    代码?
          <DataSet Name="getListOfNames">
    <Fields>
    <Field Name="personID">
    <DataField>PersonId</DataField>
    <rd:TypeName>System.Guid</rd:TypeName>
    </Field>
    <Field Name="name">
    <DataField>name</DataField>
    <rd:TypeName>System.String</rd:TypeName>
    </Field>
    </Fields>
    <Query>
    <DataSourceName>myDataSource</DataSourceName>
    <CommandType>StoredProcedure</CommandType>
    <CommandText>getListOfNames</CommandText>
    <QueryParameters>
    <QueryParameter Name="@fac">
    <Value>=join(Parameters!fac.Value,"~")</Value>
    </QueryParameter>
    <QueryParameter Name="@bldg">
    <Value>=join(Parameters!bldg.Value,"~")</Value>
    </QueryParameter>
    <QueryParameter Name="@unit">
    <Value>=join(Parameters!unit.Value,"~")</Value>
    </QueryParameter>
    <QueryParameter Name="@station">
    <Value>=join(Parameters!station.Value,"~")</Value>
    </QueryParameter>
    <QueryParameter Name="@startDate">
    <Value>=Parameters!startDate.Value</Value>
    </QueryParameter>
    <QueryParameter Name="@endDate">
    <Value>=Parameters!endDate.Value</Value>
    </QueryParameter>
    <QueryParameter Name="@viewOption">
    <Value>=Join(Parameters!viewOption.Value, "~")</Value>
    </QueryParameter>
    </QueryParameters>
    <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
    </Query>
    </DataSet>



    <ReportParameter Name="viewOption">
    <DataType>String</DataType>
    <DefaultValue>
    <Values>
    <Value>1</Value>
    </Values>
    </DefaultValue>
    <Prompt>View</Prompt>
    <ValidValues>
    <DataSetReference>
    <DataSetName>viewOptionQuery</DataSetName>
    <ValueField>value</ValueField>
    <LabelField>label</LabelField>
    </DataSetReference>
    </ValidValues>
    <MultiValue>true</MultiValue>
    </ReportParameter>



    <DataSet Name="viewOptionQuery">
    <Fields>
    <Field Name="label">
    <DataField>label</DataField>
    <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="value">
    <DataField>value</DataField>
    <rd:TypeName>System.Int32</rd:TypeName>
    </Field>
    </Fields>
    <Query>
    <DataSourceName>flamingo</DataSourceName>
    <CommandText>select 'Other Facility' as label, 3 as value union select 'Past' as label, 2 as value union select 'Current' as label, 1 as value order by value</CommandText>
    <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
    </Query>
    </DataSet>

    这是它的设置方式,如果我更改,getListOfNames 就是抛出错误的原因
                  <QueryParameter Name="@viewOption">
    <Value>=Join(Parameters!viewOption.Value, "~")</Value>
    </QueryParameter>


                  <QueryParameter Name="@viewOption">
    <Value>="1~2"</Value>
    </QueryParameter>

    那么它就可以工作了....或者值可以只是 1 或 1~2~3

    但是......当我尝试将 join(Parameters!viewOption.value,"~") 作为另一个数据集的查询参数的值时,它可以工作并且没有错误。
      <DataSet Name="getReportInfoOnSelectedPerson">
    <Fields>
    <Field Name="name">
    <DataField>name</DataField>
    <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="Building">
    <DataField>Building</DataField>
    <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="Unit">
    <DataField>Unit</DataField>
    <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="desc">
    <DataField>desc</DataField>
    <rd:TypeName>System.String</rd:TypeName>
    </Field>
    </Fields>
    <Query>
    <DataSourceName>myDataSource</DataSourceName>
    <CommandType>StoredProcedure</CommandType>
    <CommandText>Reports_BasicInfo</CommandText>
    <QueryParameters>
    <QueryParameter Name="@personID">
    <Value>=Parameters!personID.Value</Value>
    </QueryParameter>
    <QueryParameter Name="@numberINeedToAggregateData">
    <Value>=Join(Parameters!viewOption.Value,"~")</Value>
    <rd:UserDefined>true</rd:UserDefined>
    </QueryParameter>
    </QueryParameters>
    <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
    </Query>
    </DataSet>

    我已经说过了,但是抛出错误的存储过程/数据集使用了一个参数,该参数在大约 5 个其他报告中设置相同(我尝试从工作报告中复制和粘贴相关代码部分,但我仍然收到错误) .那么,这个有什么问题吗?

    最佳答案

    我发现在我的情况下,实际上是参数名称的大小写略有变化,并且抛出了同样的错误。

    我必须将名称更改为正确的大小写,然后在后面的代码中搜索任何引用该参数的内容并更正其大小写。之后部署得很好。

    关于sql-server - SSRS 2008 : error message saying my parameter doesn't exist but it clearly does?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252588/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com