Crystal Reports:交叉表列排列

时间:2010-10-20 06:26:06

标签: crystal-reports reporting report crystal-reports-2008

我正在寻找交叉选项卡中的出路,因此如果列在交叉表中超出,则不应该在下一页上进行..否则新的交叉表应该在第一页后重复。

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

alt text

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

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

alt text

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

提前致谢

2 个答案:

答案 0 :(得分:2)

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

  1. 使用一个只有1条记录的占位符表创建一个新的CR。
  2. 在此CR中,除了详细信息部分外,还要禁止所有内容。添加新的详细信息部分,这样您就可以使用Da和Db。
  3. 在Da中,添加子报表。使用您的真实数据源并添加Column1和Column2。
  4. 在Db中,添加子报表。使用您的真实数据源并添加Column3和Column4。
  5. 我没有时间对此进行测试,但我认为它会按照您的要求显示所有列。

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

    修改

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

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

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

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

答案 1 :(得分:0)

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

如果您可以创建其他行分组,那么您可以获得所需的解决方案。例如,如果列中的数字与样本中的数字相同。然后,您可以添加如下公式:

columnId \ 2