0

我有一个 RDLC 报告,其中显示了一个行表,每个行代表特定客户的员工的时间表条目,例如:

Date      Client    Employee  |Work Type |Hours Rate Total Total Invoiced Profit
2012-01-20|Client A|Employee 1|Project A |3.00|30.00|90.00|120.00        |30.00

2012-02-20|Client A|Employee 2|Project B |2.00|40.00|80.00|100.00        |20.00

....................................................................

Totals Client A                           5.00|70.00|170.00|220.00       |50.00

Company annual Fee 2012                              150.00

Total PL                                             200.00

上表的数据来自两个不同的表,Timesheet Entries 表保存为每个客户输入的小时数,InvoiceEntries 表保存客户的发票金额。数据的 DataTable 是通过运行查询 JOINing 两个表并返回一个表来填充的,例如:

Date|Employee|Client|Hours Worked|Rate|Total|Invoiced Amount|Annual Fees

现在,由于同一客户的所有行的年费都相同,并且因为我想按客户对数据行进行分组并在报告的底部有总计,我以编程方式在后面的代码中创建了一个新的 DataTable,我使用它来填充数据表中的数据我通过在其行中运行循环从数据库查询中获得,但我操纵AnnualFees 字段以仅在更改公司时才具有值,否则我将其设置为零。因此,我确保每个客户的年费字段只填充一次,这样当我计算报表底部的总计字段时,我会得到正确的值。

效果很好,但是现在用户要求在运行报告时,如果有 2013 年的年费(以便报告期涵盖两年或更长时间),希望在每个年费之后单独列出客户的时间表条目总计。

显然我不能再在数据表中使用额外的字段,因为年费存在的年数是未知的。

有谁知道我可以实现这个?

谢谢

4

1 回答 1

0

我解决了这个问题;为了将来参考,这是我所做的:我在我的数据表中添加了一个名为 RowType 的新字段。在代码隐藏中,我进行了两次数据库调用,一次检索时间表条目,第二次检索每家公司的年费。使用它们,我构建了用于将报表绑定到的数据表。包含时间表条目的行的 RowType 字段等于“项目费用”,而包含年费的行将其设置为“年费”。

然后,我根据新字段在报表上创建了一个额外的 RowGroup,并相应地设置其可见性和排序参数,以便在 RowType 具有一个值或另一个值时显示/不显示。

这似乎奏效了。

于 2013-01-23T07:48:44.440 回答