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 列数据作为第二列。为此,我可以想到两种方法。
- 如果列是静态的并且只需要开发一次报告,那么虽然这是一项艰巨的工作,但手动创建 120 个公式,其中 60 个用于行名,您将在其中写入列名,60 个用于各个列的数据并放置在报告中,因为您只有一个记录你会得到正确的数据。如下所示:
公式 1:
column1 name // write manually
公式 1:
databasefield for column1 // this has data for column1
上面将是这样的报告中的一行,您将获得 120 个公式,共 60 行,您不需要子报告,这里主报告将完成工作。
- 由于您期望动态行为(虽然列是静态的),您可以从数据库角度或数据创建视图table(请注意我不知道数据table 按照你的方便)。
以这样的方式创建它在 table 中有 2 列,并在报告中使用交叉表,这将为您提供动态行为。
在交叉表中,第 1 列是行部分,第 2 列是数据。
这里我也没有看到任何子报表的要求,你可以直接使用主报表。如果你想要子报告,你也可以使用,因为你只有 1 条记录
我擅长 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 列数据作为第二列。为此,我可以想到两种方法。
- 如果列是静态的并且只需要开发一次报告,那么虽然这是一项艰巨的工作,但手动创建 120 个公式,其中 60 个用于行名,您将在其中写入列名,60 个用于各个列的数据并放置在报告中,因为您只有一个记录你会得到正确的数据。如下所示:
公式 1:
column1 name // write manually
公式 1:
databasefield for column1 // this has data for column1
上面将是这样的报告中的一行,您将获得 120 个公式,共 60 行,您不需要子报告,这里主报告将完成工作。
- 由于您期望动态行为(虽然列是静态的),您可以从数据库角度或数据创建视图table(请注意我不知道数据table 按照你的方便)。
以这样的方式创建它在 table 中有 2 列,并在报告中使用交叉表,这将为您提供动态行为。
在交叉表中,第 1 列是行部分,第 2 列是数据。
这里我也没有看到任何子报表的要求,你可以直接使用主报表。如果你想要子报告,你也可以使用,因为你只有 1 条记录