VBA Code:
Private Sub CreateAlarmClassGroupArea()
Dim nClassCurrentAmount As Integer
Dim nGroupCurrentAmount As Integer
Dim nAreaCurrentAmount As Integer
Dim nLastColor As Double
Dim strLastClassName As String
Dim strLastGroupName As String
Dim strLastAreaName As String
'Dynamicaly create a new Class
nClassCurrentAmount = MyWorkspace.ActiveDocument.DynProperties("AlarmClasses")
If (nClassCurrentAmount > 0) Then
nLastColor = MyWorkspace.ActiveDocument.DynProperties("AlarmClasses[" & Trim(Str(nClassCurrentAmount - 1)) & "].Color")
End If
MyWorkspace.ActiveDocument.CreateDynProperty ("AlarmClasses")
strLastClassName = "ClassName" & Trim(Str(nClassCurrentAmount + 1))
MyWorkspace.ActiveDocument.DynProperties("AlarmClasses[" & Trim(Str(nClassCurrentAmount)) & "].Name") = strLastClassName
MyWorkspace.ActiveDocument.DynProperties("AlarmClasses[" & Trim(Str(nClassCurrentAmount)) & "].Description") = "ClassText" & Trim(Str(nClassCurrentAmount + 1))
MyWorkspace.ActiveDocument.DynProperties("AlarmClasses[" & Trim(Str(nClassCurrentAmount)) & "].Color") = nLastColor + 1000
'Dynamicaly Create a new Group
nGroupCurrentAmount = MyWorkspace.ActiveDocument.DynProperties("AlarmGroups")
If (nGroupCurrentAmount > 0) Then
nLastColor = MyWorkspace.ActiveDocument.DynProperties("AlarmGroups[" & Trim(Str(nGroupCurrentAmount - 1)) & "].Color")
End If
MyWorkspace.ActiveDocument.CreateDynProperty ("AlarmGroups")
strLastGroupName = "GroupName" & Trim(Str(nGroupCurrentAmount + 1))
MyWorkspace.ActiveDocument.DynProperties("AlarmGroups[" & Trim(Str(nGroupCurrentAmount)) & "].Name") = strLastGroupName
MyWorkspace.ActiveDocument.DynProperties("AlarmGroups[" & Trim(Str(nGroupCurrentAmount)) & "].Description") = "GroupText" & Trim(Str(nGroupCurrentAmount + 1))
MyWorkspace.ActiveDocument.DynProperties("AlarmGroups[" & Trim(Str(nGroupCurrentAmount)) & "].Color") = nLastColor + 1000
'Dynamicaly Create a new Area
nAreaCurrentAmount = MyWorkspace.ActiveDocument.DynProperties("AlarmAreas")
MyWorkspace.ActiveDocument.CreateDynProperty ("AlarmAreas")
MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCurrentAmount)) & "].Name") = "AreaName" & Trim(Str(nAreaCurrentAmount + 1))
MyWorkspace.ActiveDocument.CreateDynProperty ("AlarmAreas[" & Trim(Str(nAreaCurrentAmount)) & "].Items")
MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCurrentAmount)) & "].Items[0].StatusVar") = 4
MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCurrentAmount)) & "].Items[0].AlarmVar") = 5
MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCurrentAmount)) & "].Items[0].QuitVar") = 6
MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCurrentAmount)) & "].Items[0].ClassName") = strLastClassName
End Sub
VBA Code:
Private Sub GetAlarmClassGroupArea()
Dim nCounter As Integer
Dim nGrpCounter As Integer
Dim nGrpAmount As Integer
Dim nClsCounter As Integer
Dim nClsAmount As Integer
Dim nAreaCounter As Integer
Dim nAreaAmount As Integer
Dim nAreaItemAmount As Integer
Dim nAreaItemCounter As Integer
nClsAmount = MyWorkspace.ActiveDocument.DynProperties("AlarmClasses")
nAreaAmount = MyWorkspace.ActiveDocument.DynProperties("AlarmAreas")
nGrpAmount = MyWorkspace.ActiveDocument.DynProperties("AlarmGroups")
If (nGrpAmount > 0) Then
For nGrpCounter = 0 To nGrpAmount - 1
Debug.Print "GrpName:" & MyWorkspace.ActiveDocument.DynProperties("AlarmGroups[" & Trim(Str(nGrpCounter)) & ".Name")
Debug.Print "GrpText:" & MyWorkspace.ActiveDocument.DynProperties("AlarmGroups[" & Trim(Str(nGrpCounter)) & ".Description")
Debug.Print "Color:" & MyWorkspace.ActiveDocument.DynProperties("AlarmGroups[" & Trim(Str(nGrpCounter)) & ".Color")
Debug.Print "Number:" & MyWorkspace.ActiveDocument.DynProperties("AlarmGroups[" & Trim(Str(nGrpCounter)) & ".Id")
Next
End If
If (nClsAmount > 0) Then
For nClsCounter = 0 To nClsAmount - 1
Debug.Print "ClsName:" & MyWorkspace.ActiveDocument.DynProperties("AlarmClasses[" & Trim(Str(nClsCounter)) & ".Name")
Debug.Print "ClsText:" & MyWorkspace.ActiveDocument.DynProperties("AlarmClasses[" & Trim(Str(nClsCounter)) & ".Description")
Debug.Print "Color:" & MyWorkspace.ActiveDocument.DynProperties("AlarmClasses[" & Trim(Str(nClsCounter)) & ".Color")
Debug.Print "Number:" & MyWorkspace.ActiveDocument.DynProperties("AlarmClasses[" & Trim(Str(nClsCounter)) & ".Id")
Next
End If
If (nAreaAmount > 0) Then
For nAreaCounter = 0 To nAreaAmount - 1
Debug.Print MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCounter)) & ".Name")
nAreaItemAmount = MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCounter)) & ".Items")
If (nAreaItemAmount > 0) Then
For nAreaItemCounter = 0 To nAreaItemAmount - 1
Debug.Print MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCounter)) & ".Items[" & Trim(Str(nAreaItemCounter)) & "].ClassName")
Debug.Print MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCounter)) & ".Items[" & Trim(Str(nAreaItemCounter)) & "].StatusVar")
Debug.Print MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCounter)) & ".Items[" & Trim(Str(nAreaItemCounter)) & "].AlarmVar")
Debug.Print MyWorkspace.ActiveDocument.DynProperties("AlarmAreas[" & Trim(Str(nAreaCounter)) & ".Items[" & Trim(Str(nAreaItemCounter)) & "].QuitVar")
Next
End If
Next
End If
End Sub
This document governs the use of our Community Forum. By registering and using the platform, you accept these conditions.
The COPA-DATA Community Forum serves to encourage the exchange of information and experience about the zenon software between forum users respectively zenon users.
Please mind that any published information on the Community Forum is the subjective opinion and view based on the experience and the level of knowledge of the author. COPA-DATA does not overtake any responsibility for the content and the accuracy of the shared information.
Users of the Community Forum are encouraged to share only well-founded experiences and to point out any risks associated with the implementation of proposed solutions to problems. COPA-DATA at its absolute discretion, reserves the right to moderate the forum. In this connection COPA-DATA may remove any information containing false facts, potentially dangerous solutions, bad language or content that may insult, degrade or discriminate others. COPA-DATA may block a non-complying user from forum access if the user violated this provision.
COPA-DATA reserves the right to change this document from time to time at own discretion.
Ing. Punzenberger COPA-DATA GmbH
Karolingerstraße 7b · 5020 Salzburg · Austria
www.copadata.com