0

我的一份报告需要以多层次的方式显示数据。

数据结构类似于 Org>Prog>Event。

假设我有原始数据源,例如:

OrgId|ProgId|EventId|PlanValue
1    |A     |Z      |10
1    |A     |Y      |20
2    |A     |Z      |5
3    |A     |F      |2
3    |B     |Z      |3   

Reprot Layout:使用第 1 列放置所有不同的 id,但用不同的颜色来区分 id 类型。

所以蓝色是Orgid;红色是 Progid;绿色是 EventId

在该报告中,我需要查看一个组织的总计划价值、该组织的一项计划的总计划价值和一个组织活动的总计划价值。

OrgId/ProgId/EventId|PlanValue
1(blue)             |30
A(red)              |30
Z(green)            |10
Y(green)            |20
________________________
2(blue)             |5
A(red)              |5
Z(green)            |5
________________________
3(blue)             |5
A(red)              |2
F(green)            |2
B(red)              |3
Z(green)            |3

任何教程或想法都会有所帮助。

4

1 回答 1

0

我认为您不需要认为它复杂化,其中棘手的部分是根据需要获取数据,并且您可以使用类似的 sql,如下所示,sqlfiddle

select ORGID,'','', SUM(PLANVALUE) as total from table1
group by ORGID
union all
select ORGID,ProgId,'',  SUM(PLANVALUE) as total from table1
group by ORGID,ProgId
union all
select ORGID,ProgId,EventId,  SUM(PLANVALUE) as total from table1
group by ORGID,ProgId,EventId

如果您已经拥有原始数据,例如 dataTable all Entity list,您可以使用 LinQ 获得相同的结果。获得所需的结果后,只需按需要对其进行排序并绑定用于着色和分隔符的中继器,您可以使用 ProgId != "" 之类的条件语句?“颜色:蓝色”:“颜色:红色”。

于 2013-01-02T15:36:53.237 回答