1

在 ActiveReports 中,如何根据报表数据中的值更改格式?

具体来说,我想根据数据中的值显示或隐藏图片。报表通过其 DataSource 属性的集合绑定到对象列表。这些对象具有Condition值“差”、“正常”等的属性。我在报告中有一些图片对应于不同的条件,我想隐藏除与值对应的图片之外的所有图片。

我应该订阅Format详细信息部分的活动吗?如果是这样,我如何获得“当前记录”数据?

4

1 回答 1

1

好的,我仍然不知道如何获取当前数据对象,但我发现您可以使用报表的Fields属性从当前数据对象中检索值。

下面的代码订阅了详细信息部分的Format事件。Fields["Condition"].Value获取当前数据对象的Condition属性值(恰好是一个枚举值)。

    private void detail_Format(object sender, EventArgs e)
    {
        Condition? condition = Fields["Condition"].Value as Condition?;

        conditionUnknownPicture.Visible = (condition == Condition.Unknown);
        conditionPoorPicture.Visible = (condition == Condition.Poor);
        conditionNormalPicture.Visible = (condition == Condition.Normal);
        conditionNewPicture.Visible = (condition == Condition.New);
    }

编辑:

从那以后,我了解到从 Format 事件访问 Fields 集合是违反 ActiveReports 设计规则的,因为它在某些奇怪的极端情况下不起作用。我现在改用这种方法:http ://www.datadynamics.com/forums/ShowPost.aspx?PostID=133642#133642

DataDynamics 有一个功能请求 22786 以提供对来自 Format 事件的数据对象的访问。

于 2010-03-16T23:01:22.313 回答