首页 文章

在ActiveReports中隐藏单个控件的详细信息部分

提问于
浏览
0

我会尽量简化情况 .

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

我在InitializeReport中定义控件

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

我在DataInitialize事件中为控件设置了Datafield

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

在FetchData事件中,我填充控件,因此三个记录,控件被适当填充 . 没有错 . 如果第二个记录有一个值那么那很好 . 例如

第一个记录,第一次调用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事件中,但是,它隐藏了所有三个Material控件而不是一个单独的实例 . 我能做错什么?

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

我希望羊毛出现两次,在两个记录中,但棉花不出现在第二组 . 我只是无法隐藏棉花控件 . 我不想简单地删除Material1,因为我需要隐藏控件,以便我可以移动控件并重新组织报表 . 我隐藏了Material1旁边的标签以及Material1 .

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

1 回答

  • 0

    你需要添加Else给你如果或替换

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

    这样它会根据值打开或关闭 . 当您在整个控件的实例上设置属性时,子报表只有一个实例,而不是每个细节都有一个实例 .

    希望这可以帮助 .

相关问题