2016-03-02 80 views
0

我会尽量简化情况。隐藏ActiveReports中的详细信息部分的单个控件

我有一个ActiveReports子报表,它有一个我使用FetchData事件填充的控件。有时我需要隐藏控制,如果它的空白或在这个场合的价值是棉花,但聚酯应该出现。问题是,当我隐藏一个控件时,它隐藏了报表中每个事件的控件,而不仅仅是一个需要的实例。有什么我做错了吗?

我定义InitializeReport

Material1 = DirectCast(Detail.Controls("Material1"), Label) 
Material2 = DirectCast(Detail.Controls("Material2"), Label) 

控制我的DataInitialize事件

Fields.Add("Material1") 
Fields.Add("Material2") 

在FetchData事件建立数据场的控制,我填的是控制,使三个记录,该控件得到适当填充。没有错。如果第二个记录有一个值,那很好。例如

1st Record,首次调用FetchData事件。

Fields("Material1").Value = "Polyester" 
Material1.Value = "Polyester" 
Fields("Material2").value = "Wool" 
Material2.Value = "Wool" 

第二记录,该FetchData事件的第二个电话。

Fields("Material1").Value = "Cotton" 
Material1.Value = "Cotton" 
Fields("Material2").Value = "Wool" 
Material2.Value = "Wool" 

如果我想隐藏不被看到,控制被填充后,我躲在Details_Format事件的控件第二个记录/控制,但是,它会隐藏所有三种材料的控制,而不仅仅是一个单独的实例。我可能做错了什么?

If Fields("Material1").value = "Cotton" then 
    Material1.Visible = false 
End if 

我想要羊毛出现两次,在两个记录,但棉花不出现在第二个分组。我无法隐藏棉花控制。我不想简单地清空Material1,因为我需要隐藏控件,以便我可以移动控件并重新组织报表。在Material1旁边有一个标签,以及Material1。

请使用VB或C#解决方案。

+0

也许每次启动控件的新实例? – Claudius

回答

0

您需要再次添加到您若或

Material1.Visible = Not (Fields("Material1").Value = "Cotton") 

替换方式,打开或关闭基于价值。当您将属性设置为整个控件的实例时,子报表只有一个实例,而不是每个细节。

希望这有助于。

+0

谢谢,即使打开时也没有想到明确设置可见性。只是假定它一直是开着的,你只能关掉。 – MiscellaneousUser