如何在RDLC报告中从Dataset获取特定行

时间:2015-09-15 13:26:07

标签: reporting-services rdlc ssrs-tablix rdl

我有三个文本框。每个文本框将显示从“MyDataset”数据集的第一行,第二行和第三行获取的值。

我的数据集包含这些

<root>
   <CONTAINER>container1</CONTAINER>
   <STOP>
      <new_tag>stop1</new_tag>
      <PO>po1</PO>
      <PO>po2</PO>
      <PO>po3</PO>
   </STOP>
   <CONTAINER>container2</CONTAINER>
   <STOP>
      <new_tag>stop2</new_tag>
      <PO>po4</PO>
      <PO>po5</PO>
      <PO>po6</PO>
   </STOP>
   <STOP>
      <new_tag>stop3</new_tag>
      <PO>po7</PO>
      <PO>po8</PO>
   </STOP>
</root>

所以我创建了隐藏的tablix来绑定数据集并从每个单元格中获取值。 我的Tablix包括

ROW1列,用于显示数据集第一行的用户

ROW2列,用于显示来自第二行数据集的用户

ROW3列,用于显示来自第三行数据集的用户

我尝试为每个列使用此表达式。

对于ROW1

 ____SEQ_NO____|____USER__
      1        |  Beckham
      2        |  Cantona
      3        |   Depay

对于ROW2

        =Lookup(Fields!SEQ_NO.Value,1, Fields!USER.Value, "MyDataset") 

对于ROW3

        =Lookup(Fields!SEQ_NO.Value,2, Fields!USER.Value, "MyDataset") 

但这是错的。我不明白。为什么它只显示第一行,如下面的结果。

        =Lookup(Fields!SEQ_NO.Value,3, Fields!USER.Value, "MyDataset") 

######我的预期结果应如下所示。 #####

  _SEQ_NO___|___ROW1__|___ROW2__|___ROW3___
      1     | Beckham |         |  
      2     |         | Beckham |           
      3     |         |         |  Beckham

如果这是正确的。我的三个文本框可以通过此表达式引用每个特定的行

  _SEQ_NO___|___ROW1__|___ROW2__|___ROW3___
      1     | Beckham |         |  
      2     |         | Cantona |           
      3     |         |         |  Depay

1 个答案:

答案 0 :(得分:5)

您需要切换查找功能的前两个参数。

 =Lookup(1, Fields!SEQ_NO.Value, Fields!USER.Value, "MyDataset") 

 =Lookup(2, Fields!SEQ_NO.Value, Fields!USER.Value, "MyDataset")  

 =Lookup(3, Fields!SEQ_NO.Value, Fields!USER.Value, "MyDataset")  

=Lookup(Fields!SEQ_NO.Value,1,....指定的方式将导致它返回多个值。这就是为什么它只显示第一行的数据。