在ActiveReports中,如何根据报表数据中的值更改格式?
具体来说,我想根据数据中的值显示或隐藏图片。报告通过集合绑定到对象列表到其DataSource属性。这些对象具有Condition
属性,其值为“差”,“正常”等。我在报告中有一些对应于不同条件的图片,我想要隐藏除了对应的图片之外的所有图片价值。
我应该订阅详细信息部分的Format
事件吗?如果是这样,我如何获得“当前记录”数据?
答案 0 :(得分: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事件中数据对象的访问。