【问题标题】:Why is the supplied parameter considered by SSRS to be unsupplied?为什么 SSRS 认为提供的参数未提供?
【发布时间】:2016-04-24 06:35:38
【问题描述】:

我正在尝试运行我创建的报告,并使其达到我为报告创建的参数在报告运行时显示的程度,但是当我选择“查看报告”时,我最终得到了这个错误消息:

正如您所见,Unit 参数的控件(下拉列表)正在生成(并且正在填充),并且我选择了一个值(确切的值在上面的截图中被混淆了)。然而,经过一番搅动,出现了那个错误的消息。

怎么可能?毕竟,提供的 Unit 参数是 ISTM。

这不是服务器配置的问题,因为当我尝试从报告的“预览”选项卡在本地运行它时,我得到了完全相同的手指:

但是,如果我从报告的“数据”选项卡执行存储过程,请选择我为存储过程设置的数据集并提供与上述相同的三个值(就像我在 SSRS 和预览中所做的那样选项卡),一切顺利 - 没有错误消息并返回大量数据。

为什么在后一种情况下“单位”的输入值可以通过,而其他两个则不通过?

更新

以下是报告的 .rdl (XML) 文件中对“单位”的所有引用:

<ReportParameters>
    <ReportParameter Name="BegDate">
      <DataType>DateTime</DataType>
      <AllowBlank>true</AllowBlank>
      <Prompt>Begin Date</Prompt>
    </ReportParameter>
    <ReportParameter Name="EndDate">
      <DataType>DateTime</DataType>
      <AllowBlank>true</AllowBlank>
      <Prompt>End Date</Prompt>
    </ReportParameter>
    <ReportParameter Name="Unit">
      <DataType>String</DataType>
      <AllowBlank>true</AllowBlank>
      <Prompt>Unit</Prompt>
      <ValidValues>
        <DataSetReference>
          <DataSetName>UnitsQuery</DataSetName>
          <ValueField>Unit</ValueField>
          <LabelField>Unit</LabelField>
        </DataSetReference>
      </ValidValues>
    </ReportParameter>
</ReportParameters>

所以“单位”在 ReportParameters 中,这就是为什么我将它与两个 Date 参数一起看到的原因。

但为什么它是存储过程数据集中唯一的字段:

<DataSet Name="PriceVarianceSP">
  <Fields>
    <Field Name="Unit">
      <DataField>Unit</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
  </Fields>
  <Query>
    <DataSourceName>PlatypusData</DataSourceName>
    <CommandType>StoredProcedure</CommandType>
    <CommandText>priceAndUsageVariance</CommandText>
  </Query>
</DataSet>

它不应该包含所有三个字段,还是一个都不包含?为什么要对其中之一给予“特殊”考虑?

<DataSet Name="UnitsQuery">
  <Fields>
    <Field Name="Unit">
      <DataField>Unit</DataField>
    </Field>
  </Fields>
  <Query>
    <DataSourceName>PlatypusData</DataSourceName>
    <CommandText>select distinct Unit from duckbills order by unit</CommandText>
    <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
  </Query>
</DataSet>

但问题似乎是它从某个地方丢失,而不是它不属于它的某个地方,或者...???

应该从一个数据集(“PriceVarianceSP”)还是另一个(“UnitsQuery”)中删除“Unit”?

对两个日期参数 BegDate 和 EndDate 的唯一引用位于 ReportParameters 部分。

有些人可能希望/需要看到它来理解这一点,并且由于 *.rdl 文件不是太大或不太复杂(还没有?),这里是完整的:

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
  <DataSources>
    <DataSource Name="PlatypusData">
      <rd:DataSourceID>875e488f-a3fc-4066-befb-5b85a938f58d</rd:DataSourceID>
      <DataSourceReference>PlatypusData</DataSourceReference>
    </DataSource>
  </DataSources>
  <InteractiveHeight>11in</InteractiveHeight>
  <ReportParameters>
    <ReportParameter Name="BegDate">
      <DataType>DateTime</DataType>
      <AllowBlank>true</AllowBlank>
      <Prompt>Begin Date</Prompt>
    </ReportParameter>
    <ReportParameter Name="EndDate">
      <DataType>DateTime</DataType>
      <AllowBlank>true</AllowBlank>
      <Prompt>End Date</Prompt>
    </ReportParameter>
    <ReportParameter Name="Unit">
      <DataType>String</DataType>
      <AllowBlank>true</AllowBlank>
      <Prompt>Unit</Prompt>
      <ValidValues>
        <DataSetReference>
          <DataSetName>UnitsQuery</DataSetName>
          <ValueField>Unit</ValueField>
          <LabelField>Unit</LabelField>
        </DataSetReference>
      </ValidValues>
    </ReportParameter>
  </ReportParameters>
  <rd:DrawGrid>true</rd:DrawGrid>
  <InteractiveWidth>8.5in</InteractiveWidth>
  <rd:SnapToGrid>true</rd:SnapToGrid>
  <RightMargin>1in</RightMargin>
  <LeftMargin>1in</LeftMargin>
  <BottomMargin>1in</BottomMargin>
  <rd:ReportID>badCompany7a923-1452-4e00-9cc3-1f437ad70ef6</rd:ReportID>
  <DataSets>
    <DataSet Name="PriceVarianceSP">
      <Fields>
        <Field Name="Unit">
          <DataField>Unit</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
      </Fields>
      <Query>
        <DataSourceName>PlatypusData</DataSourceName>
        <CommandType>StoredProcedure</CommandType>
        <CommandText>priceAndUsageVariance</CommandText>
      </Query>
    </DataSet>
    <DataSet Name="UnitsQuery">
      <Fields>
        <Field Name="Unit">
          <DataField>Unit</DataField>
        </Field>
      </Fields>
      <Query>
        <DataSourceName>PlatypusData</DataSourceName>
        <CommandText>select distinct Unit from duckbills order by unit</CommandText>
        <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
      </Query>
    </DataSet>
  </DataSets>
  <Width>33in</Width>
  <Body>
    <ReportItems>
      <Textbox Name="textbox1">
        <rd:DefaultName>textbox1</rd:DefaultName>
        <Style>
          <Color>SteelBlue</Color>
          <FontFamily>Tahoma</FontFamily>
          <FontSize>20pt</FontSize>
          <FontWeight>700</FontWeight>
          <PaddingLeft>2pt</PaddingLeft>
          <PaddingRight>2pt</PaddingRight>
          <PaddingTop>2pt</PaddingTop>
          <PaddingBottom>2pt</PaddingBottom>
        </Style>
        <CanGrow>true</CanGrow>
        <Height>0.36in</Height>
        <Value>PriceAndUsageVarianceReport</Value>
      </Textbox>
    </ReportItems>
    <Height>2.29in</Height>
  </Body>
  <Language>en-US</Language>
  <TopMargin>1in</TopMargin>
</Report>

是否有任何可能导致此问题的跳跃/站立/突出?

更新 2

如果我删除第一个数据集字段部分(“PriceVarianceSP”),则没有区别。

如果我删除两个数据集字段部分(也是“UnitsQuery”中的一个),我会得到:

报表参数“Unit”在数据集引用中使用字段“Unit”,但数据集“UnitsQuery”不包含该字段。 (rsInvalidDataSetReferenceField)

更新 3

要清楚设计器中发生/未发生的事情,我可以转到报告的数据选项卡并选择运行(“!”)按钮并查看:

当我提供参数时,我得到数据:

但是,如果我转到设计器的“预览”选项卡,该选项卡提供了正确的控件来提供参数,并且我输入相同的参数,然后混合“查看报告”按钮,我会得到如上所示的错误消息在第一张图片中。

为什么“预览”选项卡(以及 SSRS 中的报告)看不到已提供单位参数,而“数据”选项卡却可以?

【问题讨论】:

    标签: stored-procedures reporting-services parameters parameter-passing bids


    【解决方案1】:

    可以在here找到答案。

    基本上,您需要在 BIDS 项目中配置数据集参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 2011-02-23
      相关资源
      最近更新 更多