水晶报表中,如果字段重复,抑制字段的公式

9

我有一个视图,可以在水晶报表上显示数据,其中包括tariff、rental、shares、gross和net等字段。我的问题是,如果有人在数据库中更改tariff,则会显示两行相同记录但tariff不同的情况,这是从数据库角度来看正常的行为,但我希望如果相同的id具有不同的tariff或者租金在新记录中重复出现,则将月租字段压制为0。

ID  Tariff  Rental
1    20       390
1    15       390

我希望在报表中,如果基于id有重复的出租字段,可以被抑制。目前我在Crystal Report中使用了这个公式来检查之前的字段数据,并且如果有重复就进行抑制。
{DatabaseField}=Previous({DatabaseField})
它能够很好地工作,但是如果id不同但是租金重复,也会被抑制,而这并不是我想要的。我希望它只对相同的id进行抑制。
4个回答

23

您需要将公式写入“suppress”字段中(如果重复,则无需抑制)

在租赁字段上 {ID} = previous({ID}) 并且 {rental} = previous({rental})

如果ID和租金相同,则只有报告会抑制租金。

我猜这会对您有用。


3
  1. 在Crystal Reports中,右键单击“详细信息”部分,然后选择“区域专家”。

    1. 在“区域专家”对话框中,选择Suppress命令旁边的X + 2按钮。此公式必须保持未选中状态才能正常工作。
    2. 在“公式编辑器”对话框中,创建一个条件公式,其中包含Next函数来评估记录是否存在重复值并抑制详细信息行。

    例如: {Table.Databasefield}=Previous({Table.Databasefield})


0

我不得不对Janarthanan的解决方案中的公式进行轻微更改,通过添加括号使其能够在Crystal XI中运行。

我使用了:

{ID}=previous({ID}) and {rental}=previous({rental})

这种格式变化,正如编辑后的问题所示,帮助我解决了一个类似的问题。


0
将以下代码放入字段的抑制公式中以隐藏该字段。
如果 {myTable.ID} = previous({myTable.ID}),则返回 true,否则返回 false。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接