在 ActiveReports 的详细信息部分隐藏单个控件
Hiding a single control on a Details Section in ActiveReports
我会尽量简化情况。
我有一个 ActiveReports 子报表,它有一个我使用 FetchData 事件填充的控件。有时我需要隐藏控件,如果它是空白的,或者在这种情况下,值是 Cotton 但 Polyester 应该出现。问题是,当我隐藏一个控件时,它会隐藏报告中每次出现的控件,而不仅仅是一个如此需要的实例。是不是我做错了什么。
我在InitializeReport中定义控件
Material1 = DirectCast(Detail.Controls("Material1"), Label)
Material2 = DirectCast(Detail.Controls("Material2"), Label)
我在 DataInitialize 事件中为控件设置了 Datafield
Fields.Add("Material1")
Fields.Add("Material2")
在 FetchData 事件中,我填充了控件,所以三个记录,控件被适当填充。没有错。如果第二条记录有值,那很好。例如
第 1 条记录,第一次调用 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"
如果我想隐藏第二个record/control,在控件填充后,我在Details_Format事件中隐藏控件,然而,它隐藏了所有三个Material 控件而不仅仅是一个单独的实例。我做错了什么?
If Fields("Material1").value = "Cotton" then
Material1.Visible = false
End if
我希望羊毛在两个记录中出现两次,但棉花不出现在第二组中。我只是无法隐藏 Cotton 控件。我不想简单地清空 Material1,因为我需要隐藏控件以便我可以向上移动控件并重新组织报告。 Material1 旁边有一个标签,我隐藏了 Material1.
VB 或 C# 解决方案。
你需要给你添加Else If或者替换成
Material1.Visible = Not (Fields("Material1").Value = "Cotton")
这样它会根据值打开或关闭。当您设置 属性 时,您是在整个控件的实例上设置它,子报表只有一个实例,而不是每个细节都有一个实例。
希望这对您有所帮助。
我会尽量简化情况。
我有一个 ActiveReports 子报表,它有一个我使用 FetchData 事件填充的控件。有时我需要隐藏控件,如果它是空白的,或者在这种情况下,值是 Cotton 但 Polyester 应该出现。问题是,当我隐藏一个控件时,它会隐藏报告中每次出现的控件,而不仅仅是一个如此需要的实例。是不是我做错了什么。
我在InitializeReport中定义控件
Material1 = DirectCast(Detail.Controls("Material1"), Label)
Material2 = DirectCast(Detail.Controls("Material2"), Label)
我在 DataInitialize 事件中为控件设置了 Datafield
Fields.Add("Material1")
Fields.Add("Material2")
在 FetchData 事件中,我填充了控件,所以三个记录,控件被适当填充。没有错。如果第二条记录有值,那很好。例如
第 1 条记录,第一次调用 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"
如果我想隐藏第二个record/control,在控件填充后,我在Details_Format事件中隐藏控件,然而,它隐藏了所有三个Material 控件而不仅仅是一个单独的实例。我做错了什么?
If Fields("Material1").value = "Cotton" then
Material1.Visible = false
End if
我希望羊毛在两个记录中出现两次,但棉花不出现在第二组中。我只是无法隐藏 Cotton 控件。我不想简单地清空 Material1,因为我需要隐藏控件以便我可以向上移动控件并重新组织报告。 Material1 旁边有一个标签,我隐藏了 Material1.
VB 或 C# 解决方案。
你需要给你添加Else If或者替换成
Material1.Visible = Not (Fields("Material1").Value = "Cotton")
这样它会根据值打开或关闭。当您设置 属性 时,您是在整个控件的实例上设置它,子报表只有一个实例,而不是每个细节都有一个实例。
希望这对您有所帮助。