Stored procedures 为什么SSRS认为提供的参数不适用?

Stored procedures 为什么SSRS认为提供的参数不适用?,stored-procedures,reporting-services,parameters,parameter-passing,bids,Stored Procedures,Reporting Services,Parameters,Parameter Passing,Bids,我正在尝试运行我创建的报告,并使其达到我为报告创建的参数在报告正常运行时显示的程度,但当我选择“查看报告”时,我最终得到以下错误消息: 但是,正如您所看到的,正在生成Unit参数的控件(下拉列表)(并且正在填充),我选择了一个值(确切的值在上面的截图中被模糊)。然而,经过一段时间的搅拌后,这种错误的味精出现了 这怎么可能?毕竟,提供了单位参数ISTM 这不是服务器配置的问题,因为在尝试从报表的“预览”选项卡在本地运行时,我得到了相同的fingerwag: 但是,如果我从报表的“数据”选项卡执

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

但是,正如您所看到的,正在生成Unit参数的控件(下拉列表)(并且正在填充),我选择了一个值(确切的值在上面的截图中被模糊)。然而,经过一段时间的搅拌后,这种错误的味精出现了

这怎么可能?毕竟,提供了单位参数ISTM

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

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

为什么输入的“单位”值在后一种情况下通过罚款,而在其他两种情况下不通过罚款

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


日期时间

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

但是,如果我转到设计器的Preview选项卡,它提供了提供参数的正确控件,然后输入相同的参数,然后按下“View Report”(查看报告)按钮,就会得到错误消息,如上图中所示


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

可以找到答案

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

<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>
<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>
<?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>