"Data" 和 "Preview" 数据生成在 BIDS 中的工作方式有何区别?

What is the difference between how the "Data" and "Preview" data generation works in BIDS?

当我select“!” ("Run") BIDS 项目中设计图面的数据选项卡上的按钮,它会提示我输入我 selected 需要的存储过程的参数:

提供这些后,我单击“确定”按钮,我会在“数据”选项卡的网格中看到返回的数据。

在“预览”选项卡上使用相同的存储过程(但未明确 selected - 显然项目根据“数据”选项卡中 selected 的内容知道要使用哪个存储过程),而不是通过对话框提示我输入存储过程的参数,它显示了控件(两个日期时间选择器和一个下拉列表,其中填充了适当的选项):

然而,当我在“预览”选项卡的“数据”选项卡上输入相同的精确值时(select输入我从下拉列表中为 "Unit" 输入的值)然后 select "View Report" 按钮,我得到:

处理本地报表时出错。 报告处理期间发生错误。 数据集 'PriceVarianceSP' 的查询执行失败。 过程或函数 'priceAndUsageVariance' 需要未提供的参数“@Unit”。

priceAndUsageVariance 确实需要@Unit:

CREATE Procedure [dbo].[priceAndUsageVariance]
    @Unit varchar(25),
    @BegDate datetime,
    @EndDate datetime
AS . . .

...但它还需要另外两个值 - 所有三个值都已提供。它是否只是抱怨一个据称缺失的“@Unit”值,因为它是列表中的第一个值,并且它会抱怨@BegDate 和@EndDate 缺失,如果它认为提供了@Unit,或者参数的顺序不同?

尝试 运行(执行 <- 并且我 do 感觉就像执行它,有时!)SSRS(在线)中的报告抛出与“预览”选项卡。

那么我怎样才能让它工作呢?存储过程中的某些内容是否需要更改,或者我是否需要对我的报告文件进行一些更改,或者...???

UDPATE

如果 .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>bad7a923-1452-4e00-9cc3-1f437ad70ef6</rd:ReportID>
  <DataSets>
    <DataSet Name="PriceVarianceSP">
      <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 masterunits 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.625in</Height>
  </Body>
  <Language>en-US</Language>
  <TopMargin>1in</TopMargin>
</Report>

更新 2

这就是解决困境的方法:

在设计图面的“数据”选项卡上,select 省略号点 ("Edit Selected Dataset")。

在“数据集”对话框中,选择“参数”选项卡。

像这样设置值:

(在 "Name" 列下方输入参数名称后,"Value" 列将填充可用分配,您可以从中进行选择)。

当未提供参数值时,您只会收到有关第一个参数值的错误消息,而不是所有参数值。

我觉得您需要进入数据集属性中的“参数”选项卡,并将报表参数映射到数据集参数。