代码之家  ›  专栏  ›  技术社区  ›  Anmi

根据条件抑制详细信息部分中的线条对象

  •  1
  • Anmi  · 技术社区  · 12 年前

    我使用的是Crystal Report 2008。我有一个报告结果,其中包括超过1页和1组。样本结果如下:

    第1页:
    <<组标题>>#项目编号价格
    <<组标题>> _ __ _ __ _ __ _ __ _ __
    <<详细信息a>>1项A001$1000
    <<详细信息a>>2项A002$1000
    <<详细信息a>>3第A003项2000美元
    <<分组页脚>> _ __ _ __ _ __ _ __ _ _
    <<分组页脚>>总计:4000美元

    第2页:
    <<组标题>>#项目编号价格
    <<组标题>> _ __ _ __ _ __ _ __ _ __
    <<详细信息a>>1件B001$2000美元
    <<详细信息a>>2件B002$1500
    <<详细信息a>>3第B003项2000美元
    <<分组页脚>> _ __ _ __ _ __ _ __ _ __
    <<分组页脚>>总计:5500美元

    现在我想在每一行之间插入一行,如下所示:
    (据我所知,用户无法设置线条对象的抑制条件,所以我在细节b中添加了线条)

    第1页:
    <<组标题>>#项目编号a价格
    <<组标题>> _ __ _ __ _ __ _ __ _ __
    <<详细信息a>>1项A001$1000
    <<详细信息b>>-----------------
    <<详细信息a>>2项A002$1000
    <<详细信息b>>-----------------
    <<详细信息a>>3第A003项2000美元
    <<详细信息b>> -----------------如何抑制?
    <<分组页脚>> _ __ _ __ _ __ _ __ _ __
    <<分组页脚>>总计:4000美元

    第2页:
    <<组标题>>#项目编号价格
    <<组标题>> _ __ _ __ _ __ _ __ _ __
    <<详细信息a>>1项A001$1000
    <<详细信息b>>-----------------
    <<详细信息a>>2项A002$1000
    <<详细信息b>>-----------------
    <<详细信息a>>3第A003项2000美元
    <<详细信息b>> -----------------如何抑制?
    <<分组页脚>> _ __ _ __ _ __ _ __ _ __
    <<分组页脚>>总计:5500美元

    如果“RecordNumber>=Count({ItemNo.})”,我已尝试取消显示,但第二页的RecordNumber没有重置,因此所有详细信息b将在第2页中取消显示。
    如何设置条件来抑制每组中最后一条记录的详细信息b?

    2 回复  |  直到 12 年前
        1
  •  3
  •   Emanuele Greco    10 年前

    使用此规则取消显示“详细信息B”部分:

    onlastrecord or next(table.groupfield)<>table.groupfield
    
        2
  •  1
  •   Siva    12 年前

    查找以下解决方案。

    为详细信息部分的字段创建一个运行汇总,运行汇总应该是这样的。

    1. Field to summarize should be Database Field, Type of summary should be "Count".
    
    2. Evaluate for each record.
    
    3. Reset for change of Group
    

    现在你得到了该组中的记录数。

    1. 要取消最后一条记录的行,请转到Details b取消公式编辑器并给出以下代码。使用插入摘要对详细部分中存档的记录进行计数

      IF (Count (Filed, Group})=Running total) then true else false

    一旦计数(它给出了记录的一个值计数)等于运行总值,则该行将被抑制。

    这是经过测试的代码,对我有效。