Crystal reports 在报告中递归显示所有子对象

Crystal reports 在报告中递归显示所有子对象,crystal-reports,formula,hierarchical-data,Crystal Reports,Formula,Hierarchical Data,我的表格有两个相关字段,PartNo和SubPartNo。其中包含用于构建整个部件的所有零件号。主总成(第一级)使用零件号。根据装配的复杂性,可能有数百条记录具有第一级零件号。这些记录都将包含子PartNo 如果子零件号也包含零件,则子零件号也将作为零件号列在表中的其他位置。这些又可以有子部件,等等 我的报告需要列出主要的装配零件,然后列出每个相关的子零件及其后续的编号链。如何在Crystal Reports中实现这一点 如果你必须在Crystal Reports中这样做,那你的日子就不好过了

我的表格有两个相关字段,
PartNo
SubPartNo
。其中包含用于构建整个部件的所有零件号。主总成(第一级)使用
零件号
。根据装配的复杂性,可能有数百条记录具有第一级零件号。这些记录都将包含
子PartNo

如果子零件号也包含零件,则
子零件号
也将作为
零件号
列在表中的其他位置。这些又可以有子部件,等等

我的报告需要列出主要的装配零件,然后列出每个相关的子零件及其后续的编号链。如何在Crystal Reports中实现这一点


如果你必须在Crystal Reports中这样做,那你的日子就不好过了

公式特别不适合递归,因为它依次计算每个条目,比较能力非常有限。例如,当它评估列表中的条目#42时,它唯一可以与之比较的其他条目是#41和#43。不足以满足你的需要

虽然可以在Crystal中使用子报表,但很遗憾,您不能嵌套子报表,因为它非常适合在递归的单层中使用。因此,您可以获得主部件的子部件,但没有子部件或更高的子部件


我认为实现这一点的唯一方法是编写一个存储过程,在数据到达报表之前,在报表中使用它来处理所有递归。这是完全可行的,我建议您研究SQL递归以帮助您完成这项工作。

感谢您的回复4444。我将研究SQL递归,看看它是否是我所需要的。在Oracle中,它是以/connectby开头的。这里有更多的想法:谢谢孙,我会看看的。