如果部分重复,则晶体报告分层分组选项

时间:2012-09-27 08:44:16

标签: crystal-reports

我遇到一个关于水晶报告如何分组的问题?

我有一个名为Part

的表
   Part_ID   Parent_Part_ID
    B             A
    c             A
    A             NULL
    C             B
    D             B
    E             C
    F             C

A是顶部,B,C,D不仅是子部分,而且是父部分,E,F是最低子部分。

现在,我需要显示从Parent_part到Part with Levels,像这样enter image description here

如何在Crystal报表

中显示此格式数据

我尝试使用hierachical grouping options,但结果不是我想要的

enter image description here

我需要的结果是:

 A 
   B
     C   (shold be show even the part have two parent part)
      E
      F
    D
  C
    E
    F

1 个答案:

答案 0 :(得分:3)

解决!

尝试了名为hierachical grouping options的菜单语音,并指定了将每条记录链接到其父级的字段。

结果应该类似于:

A
  B
    C
      E
      F
    D
  C
    E
    F

但Crystal Reports层次结构只记录每条记录一次,并不关心同一个元素是否应该在两个父项下。

所以我做了一个查询 - 黑客,使用基于父项的同一个表上的JOIN直接在数据中创建层次结构

DECLARE @t TABLE (Part_ID varchar(1), Parent_Part_ID varchar(1) );
insert into @t 
SELECT 'B' , 'A'  
UNION   SELECT 'C'   ,   'A' 
UNION   SELECT 'A'   ,  NULL 
UNION   SELECT 'C'   ,   'B' 
UNION   SELECT 'D'  ,    'B' 
UNION   SELECT 'E'    ,  'C' 
UNION   SELECT 'F'    ,  'C' 

SELECT 
 t1.Part_ID as t1, 
 t2.Part_ID as t2, 
 t3.Part_ID as t3, 
 t4.Part_ID as t4
FROM @t t1 
  LEFT JOIN @t t2 on t1.Part_ID = t2.Parent_Part_ID
  LEFT JOIN @t t3 on t2.Part_ID = t3.Parent_Part_ID
  LEFT JOIN @t t4 on t3.Part_ID = t4.Parent_Part_ID
WHERE t1.Parent_Part_ID is null

删除了分层分组选项,在t1,t2,t3 上创建了3个组,每个组使用标头并使用t4的详细信息。

根据需要,结果是

A
 B
  C
   E
   F
  D
 C
  E
  F

Here the .rpt如果有人需要它。