Crystal 报告 - 创建以列范围 [col1...col60] 作为数据源的子报告?

Crystal Reports - Create subreport with column range [col1...col60] as datasource?

我擅长 SQL 和 CR,但这是我从来没有做过的事情。

在 CR 中,我加载了一个 table,它将始终包含 1 条记录。有一系列列(如 Column1、Column2 ... Column60)。 (糟糕的设计,我知道,但我无能为力)。

由于这种旧设计,我必须像这样在报告中手动添加每一列:

-----------
|  TABLE  |
-----------
| Column1 |
| Column2 |
| Column3 |
| ...     |
-----------

现在我希望能够创建子报表并为其创建数据源,使 [Column1...Column60] 成为集合 [Row1...Row60]。我希望能够使用子报表的详细信息部分动态生成 table。那会节省我很多时间。

有什么办法吗?也许我的想法有所不同?

编辑

@Siva:我会尽我所能描述它。 table 存在于 500 多列中,并且只会保留 1 条记录(不会更多)。因为在创建这些 tables (Objective C / DBF ages) 列时从未考虑过规范化,例如:Brand01,Brand02,Brand03...Brand60 应该放在单独的 table 名为 "Brands"

考虑到只有一条记录,文档本身非常简单。但是有些列必须旋转(垂直堆叠)并放置在文档上的 table 布局中,如果您必须手动完成,这是一项繁重的工作。这就是为什么我想将一系列列输入到我的子报表中,这样我就可以使用我的子报表的详细信息部分自动生成 table 布局。

好的知道了...我会尽量回答...

您需要在报告中有 2 列,将 60 列名称显示为 60 行作为第一列,60 列数据作为第二列。为此,我可以想到两种方法。

  1. 如果列是静态的并且只需要开发一次报告,那么虽然这是一项艰巨的工作,但手动创建 120 个公式,其中 60 个用于行名,您将在其中写入列名,60 个用于各个列的数据并放置在报告中,因为您只有一个记录你会得到正确的数据。如下所示:

公式 1:

column1 name // write manually

公式 1:

databasefield for column1 // this has data for column1

上面将是这样的报告中的一行,您将获得 120 个公式,共 60 行,您不需要子报告,这里主报告将完成工作。

  1. 由于您期望动态行为(虽然列是静态的),您可以从数据库角度或数据创建视图table(请注意我不知道数据table 按照你的方便)。

以这样的方式创建它在 table 中有 2 列,并在报告中使用交叉表,这将为您提供动态行为。

在交叉表中,第 1 列是行部分,第 2 列是数据。

这里我也没有看到任何子报表的要求,你可以直接使用主报表。如果你想要子报告,你也可以使用,因为你只有 1 条记录