2013-01-21 15 views
0

我有一个RDLC报告的表示每个代表从雇员一个时间表条目为特定客户机的行,如表填充一个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 

上表的数据来自两个不同的表格,包含为每个客户端输入小时数的时间表条目表格,以及包含客户端发票金额的InvoiceEntries表格。对于数据的数据表通过运行一个查询连接两个表,并返回一个表,如填充:

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

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

这个效果非常好,但现在用户要求在报告运行时,如果有2013年的年度费用(以便报告期限涵盖两年或更多),那么希望让他们在每个客户的时间表条目总数后单独列出。

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

有没有人有一个想法,我可以实现这一点?

谢谢

回答

0

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

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

这似乎是工作。