Crystal reports 动态分组水晶报告9

Crystal reports 动态分组水晶报告9,crystal-reports,Crystal Reports,我有一个crystal报表,它的报表参数可以是1到100之间的值。 如果值小于50,我需要按CustomerID分组。如果该值大于50,我需要按OrderID分组 我一直在网上搜索如何做到这一点,我发现有几个链接说这可以通过公式来实现。因此,在公式中,我有: if {ReportParameter} < 50 then {TableName.CustomerID} else {TableName.OrderID} 如果{ReportParameter}Group Expe

我有一个crystal报表,它的报表参数可以是1到100之间的值。 如果值小于50,我需要按CustomerID分组。如果该值大于50,我需要按OrderID分组

我一直在网上搜索如何做到这一点,我发现有几个链接说这可以通过公式来实现。因此,在公式中,我有:

if {ReportParameter} < 50 then
    {TableName.CustomerID}
else
    {TableName.OrderID}
如果{ReportParameter}<50,则
{TableName.CustomerID}
其他的
{TableName.OrderID}
我手动创建了一个可以正确筛选数据的组,但是当我将公式拖到一个分组类别中时,它对我不起作用


我还缺了一步吗?

有几种方法可以解决这个问题

  • 如果我正确理解您的后续评论,您所做的只是更改组的显示名称,而实际上并没有更改组。我自己也试过,只是为了确定,这就是我所认为的

  • 第二,(如果我错了,有人纠正我),你不能在公式上分组。我在CR2010中也尝试过,但没有成功。 (编辑划掉它。Ryan是对的。我错了)

  • 我建议使用报告->Group Expert查看在何处分组。默认情况下,它也应该位于工具栏上
  • 我可以想出两种方法来设置您的报告,使此问题无效:

  • 制作两个单独的报告,每个视图一个。适当设置选择标准
  • 制作1份主报告。在此处设置您的组、页面以及报告页眉和页脚。在数据进入Crystal之前,创建一个字段作为“索引”(可能使用您列出的公式)并对其分组
  • 创建2个详细信息小节。如果要更改组的标签,只需将公式字段拖放到组标题上即可
  • 如果{ReportParameter}<50,则禁止显示第一个子节。在其中创建一个子报表,并按{OrderID}对该子报表进行分组
  • 如果{ReportParameter}>50,则禁止显示第二小节。在那里创建一个子报表,并按{CustomerID}对该子报表进行分组

  • 好的,下面是我如何完成这项工作的:

    我定义了公式,但没有将组链接到公式。所以我回到了组标题>更改组>更改组选项>选项选项卡

    并指出了我的配方的名称,它起了作用


    我认为,通过将公式添加到组标题,CR会自动将我的公式与组标题关联。DOH

    几个问题:当你说你“手动创建了一个组”时,你的意思是你只是插入了组作为{TableName.CustomerID}和{TableName.OrderID}?当你尝试用这个公式分组时,当你说“它不工作”时,你的确切意思是什么?是的,我插入了组(插入>组),只是想看看我是否能成功地分组数据,这是否有效。所以我把标签从分组部分去掉,尝试在那里放一个公式,但是这个公式不起作用。我认为使用这个公式分组没有任何问题。它不工作,因为记录根本没有分组?当您这样做时,什么显示为组名?我忘了提到,我不希望CustomerID显示,我希望在第一次插入组时显示客户名。因此,我右键单击报告左侧的灰色区域,选择“更改组”,启动更改组选项并转到“选项”选项卡以自定义组名字段。这不起作用,因为记录没有按应有的方式分组。我经常按公式分组。我的大多数报告都包含某种灵活的分组,允许用户准确地指定coson要完成的任务。。。也就是说,根据参数按此字段分组,否则按此其他字段分组。我在席和2008都做了这个,没有问题。谢谢。我相应地改变了答案。我不知道为什么我会这样想。就我个人而言,你能定义“灵活小组”吗?不熟悉这个术语。我所说的“灵活组”只是指一个参数化的组-一个可以根据报表运行实例接受许多可能的字段和/或计算值的组。对不起,也许这不是常用的术语,但我不知道该怎么称呼它:)