具有参数的SSR子报告仅渲染一个组记录



我想建立一个报告,该报告返回一组员工的记录,并通过特定的日期和主管,并呈现员工的报告(如一批)。我正在使用主要报告和3个子报告这样做。我的子报告单独工作,我刚刚从Main中获得了一个子报告,但只有组中的第一张记录。

MAIN上的数据集具有3个参数,userId,bebdate,enddate。子报告上的数据集以empid,bebdate,enddate为单位。我在主和子报告参数上插入了子报告,如下所示:

    Name      Value
    CurEmp     =First(Fields!EMPID.Value, "DataSet1")
    BegDate    [@BegDate]
    EndDate    [@EndDate]

其中 CurEmp在dataSet1/sql查询的WHERE子句中使用,即WHERE EMPID = @CurEmp

数据集中的主要报告参数为:

Name     Value
@USERID     [@USERID]
@BegDate    [@BegDate]
@EndDate    [@EndDate]

现在,我意识到,参数Value中的表达式中的=First应该仅呈现第一个记录,但我将其更改为完全不会呈现。我做了教程,并用Google搜索了2天。我可以让简单的子报告工作,但似乎没有任何东西适用于我要做的事情。有人可以将我带到适用于我情况的示例吗?

顺便说一句,我已经将我的VS2008环境设置为业务智能项目。

更新:我在下面添加了我的SQL查询,以帮助@SAM的建议解释。实际上,我开始看一个事实,也许我写了错误的问题。我对应该将主要报告查询与子查询进行比较感到困惑。...我希望这有助于澄清我的含义。

主报告数据集=

SELECT
v.EMPID,
UPPER(p.FirstName + ' ' + p.LastName)  as EmpFullName, 
v.dtmDate,  
v.TCode,  
v.Hours, 
v.ProjectNo,  
from vwPersonSummary v
join tblPerson t on v.EMPID = p.EMPID
WHERE  v.USERID = @USERID  --Supervisor’s EMPID
AND 
v.dtmDate BETWEEN @BegDate AND @EndDate  
ORDER BY v.EMPID, v.dtmDate

subreport dataset =

SELECT
v.EMPID,
UPPER(p.FirstName + ' ' + p.LastName)  as EmpFullName, 
v.dtmDate, 
v.Tcode,  
v.Hours, 
v.ProjectNo  
from vwPersonSummary v
join tblPerson t on v. EMPID = t. EMPID
WHERE
v.EMPID =  @CurEmp 
AND v.dtmDate BETWEEN @BegDate AND @EndDate 
ORDER BY v.dtmDate

,因此您的修复/答案将如下所示。

从主报告定义参数时,应该是这样的。

=Join(LookupSet(1,1,Fields!EMPID.Value,"DataSet1"),",")

定义后,确保将sub Report参数数据类型设置为 text 允许多个值已被检查。

之后,对于子报告的数据集,请勿设置一个条件。而是在数据集属性中转到过滤器

in expression 设置

之类的东西
=CStr(Fields!EMPID.Value)

和set 操作员 as in >> 中,并将 value 设置为类似于下面的东西。

=Split(Parameters!EmpId.Value(0),",")

基本上就是这样。希望这会有所帮助。

相关内容

  • 没有找到相关文章

最新更新