如何在BIDS报告项目中向Matrix添加列?

时间:2016-01-21 19:01:08

标签: matrix reporting-services bids rdl

当我在BIDS设计器的Layout页面中添加Matrix时,它会创建两列。我需要更多。我希望Matrix控件有一个" ColumnCount"财产,但它没有。

我的下一个期望是Matrix将提供一个允许我插入列的上下文相关菜单。它没有。如果我单击矩阵,则会选择一个文本框。虽然我可以按下" Esc"要使Matrix成为选定控件的键,上下文菜单或其属性页中仍然没有可能的选项。

添加列必须是最常见的事情之一 - 它是如何完成的?

尝试理解.rdl文件对我没有多大帮助;对于事物的组织方式似乎没有任何押韵或理由。在设计图面上,我有一个有两列和两行的矩阵。第1行在文本框中包含两个标签。第2行包含文本框,其字段表达式分配给其Value属性。然而.rdl(xml)文件在ColumnGroupings.ColumnGrouping.DynamicColumns.ReportItems部分中有一个标签(" WEEK 1 USAGE"),另一个(" PLATYPUSDESCRIPTION")in一个Corner.ReportItems部分。

对于数据,一个(PLATYPUSDESCRIPTION.Value)位于RowGroupings.RowGrouping.DynamicRows.ReportItems部分,另一个(WEEK1USAGE.Value)位于MatrixRows.MatrixRow.MatrixCells.MatrixCell.ReportItems部分。

为了证明我没有疯狂[ier,y],这里是问题矩阵的rdl / xml(标签/数据元素的外观重新排列得多一点)逻辑比他们的实际外观顺序,以及一些多余的东西(ZOrder等)被省略了:

<Matrix Name="matrix1">

  <MatrixColumns>
    <MatrixColumn>
      <Width>2.375in</Width>
    </MatrixColumn>
  </MatrixColumns>

  // "PLATYPUS DESCRIPTION" label
  <Corner>
    <ReportItems>
      <Textbox Name="textbox2">
        <rd:DefaultName>textbox2</rd:DefaultName>
        <Style>
          <FontSize>12pt</FontSize>
          <FontWeight>700</FontWeight>
          <PaddingLeft>2pt</PaddingLeft>
          <PaddingRight>2pt</PaddingRight>
          <PaddingTop>2pt</PaddingTop>
          <PaddingBottom>2pt</PaddingBottom>
        </Style>
        <ZIndex>3</ZIndex>
        <CanGrow>true</CanGrow>
        <Value>PLATYPUS DESCRIPTION</Value>
      </Textbox>
    </ReportItems>
  </Corner>

  // PLATYPUSDESCRIPTION data
  <RowGroupings>
    <RowGrouping>
      <Width>2.75in</Width>
      <DynamicRows>
        <Grouping Name="matrix1_RowGroup1">
          <GroupExpressions>
            <GroupExpression />
          </GroupExpressions>
        </Grouping>
        <ReportItems>
          <Textbox Name="textboxDescription">
            <Style>
              <FontSize>11pt</FontSize>
              <PaddingLeft>2pt</PaddingLeft>
              <PaddingRight>2pt</PaddingRight>
              <PaddingTop>2pt</PaddingTop>
              <PaddingBottom>2pt</PaddingBottom>
            </Style>
            <ZIndex>1</ZIndex>
            <CanGrow>true</CanGrow>
            <Value>=Fields!PLATYPUSDESCRIPTION.Value</Value>
          </Textbox>
        </ReportItems>
      </DynamicRows>
    </RowGrouping>
  </RowGroupings>

  // "WEEK 1 USAGE" label
  <ColumnGroupings>
    <ColumnGrouping>
      <Height>0.25in</Height>
      <DynamicColumns>
        <Grouping Name="matrix1_ColumnGroup1">
          <GroupExpressions>
            <GroupExpression />
          </GroupExpressions>
        </Grouping>
        <ReportItems>
          <Textbox Name="textbox3">
            <rd:DefaultName>textbox3</rd:DefaultName>
            <Style>
              <FontSize>12pt</FontSize>
              <FontWeight>700</FontWeight>
              <PaddingLeft>2pt</PaddingLeft>
              <PaddingRight>2pt</PaddingRight>
              <PaddingTop>2pt</PaddingTop>
              <PaddingBottom>2pt</PaddingBottom>
            </Style>
            <ZIndex>2</ZIndex>
            <CanGrow>true</CanGrow>
            <Value>WEEK 1 USAGE</Value>
          </Textbox>
        </ReportItems>
      </DynamicColumns>
    </ColumnGrouping>
  </ColumnGroupings>

  // WEEK1USAGE data
  <MatrixRows>
    <MatrixRow>
      <Height>0.25in</Height>
      <MatrixCells>
        <MatrixCell>
          <ReportItems>
            <Textbox Name="textboxWeek1Usage">
              <Style>
                <FontSize>11pt</FontSize>
                <PaddingLeft>2pt</PaddingLeft>
                <PaddingRight>2pt</PaddingRight>
                <PaddingTop>2pt</PaddingTop>
                <PaddingBottom>2pt</PaddingBottom>
              </Style>
              <CanGrow>true</CanGrow>
              <Value>=Fields!WEEK1USAGE.Value</Value>
            </Textbox>
          </ReportItems>
        </MatrixCell>
      </MatrixCells>
    </MatrixRow>
  </MatrixRows>
  <Height>0.5in</Height>
  <Left>0.25in</Left>
</Matrix>

更新

以下是整个&#34; matrix1&#34;的实际摘录。 rdl / xml文件的一部分:

  <Matrix Name="matrix1">
    <MatrixColumns>
      <MatrixColumn>
        <Width>2.375in</Width>
      </MatrixColumn>
    </MatrixColumns>
    <ZIndex>1</ZIndex>
    <DataSetName>PriceVarianceSP</DataSetName>
    <RowGroupings>
      <RowGrouping>
        <Width>2.75in</Width>
        <DynamicRows>
          <Grouping Name="matrix1_RowGroup1">
            <GroupExpressions>
              <GroupExpression />
            </GroupExpressions>
          </Grouping>
          <ReportItems>
            <Textbox Name="textboxDescription">
              <Style>
                <FontSize>11pt</FontSize>
                <PaddingLeft>2pt</PaddingLeft>
                <PaddingRight>2pt</PaddingRight>
                <PaddingTop>2pt</PaddingTop>
                <PaddingBottom>2pt</PaddingBottom>
              </Style>
              <ZIndex>1</ZIndex>
              <CanGrow>true</CanGrow>
              <Value>=Fields!PROACTDESCRIPTION.Value</Value>
            </Textbox>
          </ReportItems>
        </DynamicRows>
      </RowGrouping>
    </RowGroupings>
    <Top>0.5in</Top>
    <ColumnGroupings>
      <ColumnGrouping>
        <Height>0.25in</Height>
        <DynamicColumns>
          <Grouping Name="matrix1_ColumnGroup1">
            <GroupExpressions>
              <GroupExpression />
            </GroupExpressions>
          </Grouping>
          <ReportItems>
            <Textbox Name="textbox3">
              <rd:DefaultName>textbox3</rd:DefaultName>
              <Style>
                <FontSize>12pt</FontSize>
                <FontWeight>700</FontWeight>
                <PaddingLeft>2pt</PaddingLeft>
                <PaddingRight>2pt</PaddingRight>
                <PaddingTop>2pt</PaddingTop>
                <PaddingBottom>2pt</PaddingBottom>
              </Style>
              <ZIndex>2</ZIndex>
              <CanGrow>true</CanGrow>
              <Value>WEEK 1 USAGE</Value>
            </Textbox>
          </ReportItems>
        </DynamicColumns>
      </ColumnGrouping>
    </ColumnGroupings>
    <Width>5.125in</Width>
    <Corner>
      <ReportItems>
        <Textbox Name="textbox2">
          <rd:DefaultName>textbox2</rd:DefaultName>
          <Style>
            <FontSize>12pt</FontSize>
            <FontWeight>700</FontWeight>
            <PaddingLeft>2pt</PaddingLeft>
            <PaddingRight>2pt</PaddingRight>
            <PaddingTop>2pt</PaddingTop>
            <PaddingBottom>2pt</PaddingBottom>
          </Style>
          <ZIndex>3</ZIndex>
          <CanGrow>true</CanGrow>
          <Value>DESCRIPTION</Value>
        </Textbox>
      </ReportItems>
    </Corner>
    <MatrixRows>
      <MatrixRow>
        <Height>0.25in</Height>
        <MatrixCells>
          <MatrixCell>
            <ReportItems>
              <Textbox Name="textboxWeek1Usage">
                <Style>
                  <FontSize>11pt</FontSize>
                  <PaddingLeft>2pt</PaddingLeft>
                  <PaddingRight>2pt</PaddingRight>
                  <PaddingTop>2pt</PaddingTop>
                  <PaddingBottom>2pt</PaddingBottom>
                </Style>
                <CanGrow>true</CanGrow>
                <Value>=Fields!WEEK1USAGE.Value</Value>
              </Textbox>
            </ReportItems>
          </MatrixCell>
        </MatrixCells>
      </MatrixRow>
    </MatrixRows>
    <Height>0.5in</Height>
    <Left>0.25in</Left>
  </Matrix>

1 个答案:

答案 0 :(得分:1)

根据列组表达式动态添加列。例如,假设您要在每月的每一天显示使用情况数据(并假设DateUsed没有时间组件),那么您的矩阵只有一列,列组表达式是使用的日期{{ 1}}和“详细信息”单元格汇总了当天=Fields!DateUsed.Value的使用情况。

所以你的矩阵看起来很简单:

=Sum(Fields!Usage.Value)

这就是它的全部。

当您运行报告时,矩阵会添加与数据中的日期一样多的列。