Crystal Report仅根据两个字段更改显示历史记录

时间:2012-10-09 19:12:52

标签: crystal-reports report

我正在尝试使用history_table编写报告。 我想知道如果表中只有两个字段已更改ex(ss.dem1)和(ss.dem2),我将如何仅显示记录以显示历史记录 如果其他任何更改,如表中的电话或地址,也不会在报告中提出或抑制它。我希望只看到这两个字段的数据已经改变,并且每次更改为历史记录时 enter image description here

这将是我想要完成的一个例子。

我也曾尝试使用抑制公式,但只给了我最后一条记录而没有向我展示我喜欢上面的例子

不是onlastrecord和next(PATID)= PATID和next(ssdem1)= ssdem1 要么 不是onlastrecord和next(PATID)= PATID和next(ssdem2)= ssdem2

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在数据库方面,您可以进行自我加入,并且只保留您感兴趣的其中一个项目所发生变化的记录,例如:

select WHATEVER
from HISTORY H1, HISTORY H2
where H1.PAT_ID=H2.PAT_ID
 and (H1.DEM1 <> H2.DEM1
      or H1.DEM2 <> H2.DEM2
      etc...)

或者,您可以按PAT_ID排序报告,然后按编辑的日期/时间排序,然后禁止没有任何变化的行,这听起来就像您尝试做的那样。如果您发布确切的抑制公式,我可能会看到您出错的地方。应该是这样的:

not(onfirstrecord) or
({TABLE.PAT_ID}=previous({TABLE.PAT_ID})
 and {TABLE.DEM1}=previous({TABLE.DEM1}) //check all fields you're concerned with for equality
 and {TABLE.DEM2=previous({TABLE.DEM2})
 and etc...)