1

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

我有一个名为 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 的级别,像这样在此处输入图像描述

如何在水晶报表中显示此格式数据

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

在此处输入图像描述

我需要的结果是:

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

1 回答 1

3

解决了!

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

结果应该类似于:

A
  B
    C
      E
      F
    D
  C
    E
    F

但是 Crystal Reports Hierarchies 只获取每条记录一次,并且不关心同一个元素是否应该在两个父级之下。

所以我做了一个查询破解,使用基于父项的同一张表上的 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

如果有人需要,这里是 .rpt 。

于 2012-09-27T09:15:40.887 回答