5

我正在寻找交叉表中的出路,因此如果列超过交叉表中的列,它们不应该进入下一页。而是应该在第一个交叉表之后重复一个新的交叉表。

例如,交叉表中显示两列:

替代文字

现在,如果添加了一个新列,并且假设它无法在给定的页面宽度限制内容纳,则默认情况下它将转到 CR 中它旁边的页面。

但在我的报告中,它需要显示在第一个交叉表下方(而不是下一页),如下所示:

替代文字

如果有出路,请建议我:)

提前致谢

4

2 回答 2

2

你的问题是完全合理的,但我很确定在 CR-XI 中,没有自动的方法来做到这一点。我建议完全跳过交叉表设计器,只做你自己的:

  1. 使用正好有 1 条记录的占位符表创建一个新的 CR。
  2. 在此 CR 中,禁止显示除详细信息部分之外的所有内容。添加一个新的详细信息部分,以便您拥有 Da 和 Db。
  3. 在 Da 中,添加一个子报表。使用您的真实数据源并添加 Column1 和 Column2。
  4. 在 Db 中,添加一个子报表。使用您的真实数据源并添加 Column3 和 Column4。

我没有时间对此进行测试,但我认为它会按照您的要求显示所有列。

(而不是第 1 步,您可以在报告中使用仅包含 1 个组的 placegrouper 组。然后,当您添加子报告时,请确保不要向主报告添加任何链接。)

编辑

动态数量的列使这个请求在 Crystal 中变得更加困难。

  1. 也许您可以从脚本自动生成整个报告。我无法帮助你,但我相信 StackOverflow 上的其他人会。

  2. 您可以使用 MS Excel 来实现类似的功能。使用 MS Access 或类似的东西来设置数据的交叉表。打开一个新的 Excel 工作簿并使用Data->Import External Data->Import Data导入您的交叉表数据源(这将导入整个表,无论行数如何)。在页面设置中,将设置更改为适合(空白)页面(宽 1 页)。您可以根据需要格式化数据,并且格式将被保留。这种 Excel 方法会将所有列压缩到 1 页宽的区域中。这不是你所要求的,但它会起作用。

  3. 列数可能是动态的,但您知道字段名称可能是什么吗?例如,您的列包括 0-50 个美国州,那么您知道列名是什么,而不是哪些或多少。如果这是您的情况,请使用我的第一个建议(如果为空白选项,请选中抑制以隐藏不需要的子报告)。它不会很漂亮(很多空白),但它可以完成工作。

于 2010-10-20T13:45:52.273 回答
0

一个可能的解决方案可以是多列报告。但是在同一行中制作行标签和值可能很困难。

如果您可以创建额外的行分组,那么您就有了您想要的解决方案。例如,如果您的列有您的样本中的数字。然后你可以添加一个公式,如:

columnId \ 2
于 2010-10-22T17:58:56.820 回答