bump product version to 5.0.4.1
[LibreOffice.git] / wizards / source / access2base / Event.xba
blobde6aa2a6e4c68c97504e7215a97e711e85da09a7
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3 <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Event" script:language="StarBasic">REM =======================================================================================================================
4 REM === The Access2Base library is a part of the LibreOffice project. ===
5 REM === Full documentation is available on http://www.access2base.com ===
6 REM =======================================================================================================================
8 Option Compatible
9 Option ClassModule
11 Option Explicit
13 REM -----------------------------------------------------------------------------------------------------------------------
14 REM --- CLASS ROOT FIELDS ---
15 REM -----------------------------------------------------------------------------------------------------------------------
17 Private _Type As String &apos; Must be EVENT
18 Private _EventSource As Object
19 Private _EventType As String
20 Private _EventName As String
21 Private _SubComponentName As String
22 Private _SubComponentType As Long
23 Private _ContextShortcut As String
24 Private _ButtonLeft As Boolean &apos; com.sun.star.awt.MouseButton.XXX
25 Private _ButtonRight As Boolean
26 Private _ButtonMiddle As Boolean
27 Private _XPos As Variant &apos; Null or Long
28 Private _YPos As Variant &apos; Null or Long
29 Private _ClickCount As Long
30 Private _KeyCode As Integer &apos; com.sun.star.awt.Key.XXX
31 Private _KeyChar As String
32 Private _KeyFunction As Integer &apos; com.sun.star.awt.KeyFunction.XXX
33 Private _KeyAlt As Boolean
34 Private _KeyCtrl As Boolean
35 Private _KeyShift As Boolean
36 Private _FocusChangeTemporary As Boolean &apos; False if user action in same window
37 Private _RowChangeAction As Long &apos; com.sun.star.sdb.RowChangeAction.XXX
38 Private _Recommendation As String &apos; &quot;IGNORE&quot; or &quot;&quot;
40 REM -----------------------------------------------------------------------------------------------------------------------
41 REM --- CONSTRUCTORS / DESTRUCTORS ---
42 REM -----------------------------------------------------------------------------------------------------------------------
43 Private Sub Class_Initialize()
44 _Type = OBJEVENT
45 _EventSource = Nothing
46 _EventType = &quot;&quot;
47 _EventName = &quot;&quot;
48 _SubComponentName = &quot;&quot;
49 _SubComponentType = -1
50 _ContextShortcut = &quot;&quot;
51 _ButtonLeft = False &apos; See com.sun.star.awt.MouseButton.XXX
52 _ButtonRight = False
53 _ButtonMiddle = False
54 _XPos = Null
55 _YPos = Null
56 _ClickCount = 0
57 _KeyCode = 0
58 _KeyChar = &quot;&quot;
59 _KeyFunction = com.sun.star.awt.KeyFunction.DONTKNOW
60 _KeyAlt = False
61 _KeyCtrl = False
62 _KeyShift = False
63 _FocusChangeTemporary = False
64 _RowChangeAction = 0
65 _Recommendation = &quot;&quot;
66 End Sub &apos; Constructor
68 REM -----------------------------------------------------------------------------------------------------------------------
69 Private Sub Class_Terminate()
70 On Local Error Resume Next
71 Call Class_Initialize()
72 End Sub &apos; Destructor
74 REM -----------------------------------------------------------------------------------------------------------------------
75 Public Sub Dispose()
76 Call Class_Terminate()
77 End Sub &apos; Explicit destructor
79 REM -----------------------------------------------------------------------------------------------------------------------
80 REM --- CLASS GET/LET/SET PROPERTIES ---
81 REM -----------------------------------------------------------------------------------------------------------------------
82 Property Get ButtonLeft() As Variant
83 ButtonLeft = _PropertyGet(&quot;ButtonLeft&quot;)
84 End Property &apos; ButtonLeft (get)
86 REM -----------------------------------------------------------------------------------------------------------------------
87 Property Get ButtonMiddle() As Variant
88 ButtonMiddle = _PropertyGet(&quot;ButtonMiddle&quot;)
89 End Property &apos; ButtonMiddle (get)
91 REM -----------------------------------------------------------------------------------------------------------------------
92 Property Get ButtonRight() As Variant
93 ButtonRight = _PropertyGet(&quot;ButtonRight&quot;)
94 End Property &apos; ButtonRight (get)
96 REM -----------------------------------------------------------------------------------------------------------------------
97 Property Get ClickCount() As Variant
98 ClickCount = _PropertyGet(&quot;ClickCount&quot;)
99 End Property &apos; ClickCount (get)
101 REM -----------------------------------------------------------------------------------------------------------------------
102 Property Get ContextShortcut() As Variant
103 ContextShortcut = _PropertyGet(&quot;ContextShortcut&quot;)
104 End Property &apos; ContextShortcut (get)
106 REM -----------------------------------------------------------------------------------------------------------------------
107 Property Get EventName() As Variant
108 EventName = _PropertyGet(&quot;EventName&quot;)
109 End Property &apos; EventName (get)
111 REM -----------------------------------------------------------------------------------------------------------------------
112 Property Get EventSource() As Variant
113 EventSource = _PropertyGet(&quot;EventSource&quot;)
114 End Property &apos; EventSource (get)
116 REM -----------------------------------------------------------------------------------------------------------------------
117 Property Get EventType() As Variant
118 EventType = _PropertyGet(&quot;EventType&quot;)
119 End Property &apos; EventType (get)
121 REM -----------------------------------------------------------------------------------------------------------------------
122 Property Get FocusChangeTemporary() As Variant
123 FocusChangeTemporary = _PropertyGet(&quot;FocusChangeTemporary&quot;)
124 End Property &apos; FocusChangeTemporary (get)
126 REM -----------------------------------------------------------------------------------------------------------------------
127 Property Get KeyAlt() As Variant
128 KeyAlt = _PropertyGet(&quot;KeyAlt&quot;)
129 End Property &apos; KeyAlt (get)
131 REM -----------------------------------------------------------------------------------------------------------------------
132 Property Get KeyChar() As Variant
133 KeyChar = _PropertyGet(&quot;KeyChar&quot;)
134 End Property &apos; KeyChar (get)
136 REM -----------------------------------------------------------------------------------------------------------------------
137 Property Get KeyCode() As Variant
138 KeyCode = _PropertyGet(&quot;KeyCode&quot;)
139 End Property &apos; KeyCode (get)
141 REM -----------------------------------------------------------------------------------------------------------------------
142 Property Get KeyCtrl() As Variant
143 KeyCtrl = _PropertyGet(&quot;KeyCtrl&quot;)
144 End Property &apos; KeyCtrl (get)
146 REM -----------------------------------------------------------------------------------------------------------------------
147 Property Get KeyFunction() As Variant
148 KeyFunction = _PropertyGet(&quot;KeyFunction&quot;)
149 End Property &apos; KeyFunction (get)
151 REM -----------------------------------------------------------------------------------------------------------------------
152 Property Get KeyShift() As Variant
153 KeyShift = _PropertyGet(&quot;KeyShift&quot;)
154 End Property &apos; KeyShift (get)
156 REM -----------------------------------------------------------------------------------------------------------------------
157 Property Get ObjectType() As String
158 ObjectType = _PropertyGet(&quot;ObjectType&quot;)
159 End Property &apos; ObjectType (get)
161 REM -----------------------------------------------------------------------------------------------------------------------
162 Public Function Properties(ByVal Optional pvIndex As Variant) As Variant
163 &apos; Return
164 &apos; a Collection object if pvIndex absent
165 &apos; a Property object otherwise
167 Dim vProperty As Variant, vPropertiesList() As Variant, sObject As String
168 vPropertiesList = _PropertiesList()
169 sObject = Utils._PCase(_Type)
170 If IsMissing(pvIndex) Then
171 vProperty = PropertiesGet._Properties(sObject, &quot;&quot;, vPropertiesList)
172 Else
173 vProperty = PropertiesGet._Properties(sObject, &quot;&quot;, vPropertiesList, pvIndex)
174 vProperty._Value = _PropertyGet(vPropertiesList(pvIndex))
175 End If
177 Exit_Function:
178 Set Properties = vProperty
179 Exit Function
180 End Function &apos; Properties
182 REM -----------------------------------------------------------------------------------------------------------------------
183 Property Get Recommendation() As Variant
184 Recommendation = _PropertyGet(&quot;Recommendation&quot;)
185 End Property &apos; Recommendation (get)
187 REM -----------------------------------------------------------------------------------------------------------------------
188 Property Get RowChangeAction() As Variant
189 RowChangeAction = _PropertyGet(&quot;RowChangeAction&quot;)
190 End Property &apos; RowChangeAction (get)
192 REM -----------------------------------------------------------------------------------------------------------------------
193 Public Function Source() As Variant
194 &apos; Return the object having fired the event: Form, Control or SubForm
195 &apos; Else return the root Database object
196 Source = _PropertyGet(&quot;Source&quot;)
197 End Function &apos; Source (get)
199 REM -----------------------------------------------------------------------------------------------------------------------
200 Property Get SubComponentName() As String
201 SubComponentName = _PropertyGet(&quot;SubComponentName&quot;)
202 End Property &apos; SubComponentName (get)
204 REM -----------------------------------------------------------------------------------------------------------------------
205 Property Get SubComponentType() As Long
206 SubComponentType = _PropertyGet(&quot;SubComponentType&quot;)
207 End Property &apos; SubComponentType (get)
209 REM -----------------------------------------------------------------------------------------------------------------------
210 Property Get XPos() As Variant
211 XPos = _PropertyGet(&quot;XPos&quot;)
212 End Property &apos; XPos (get)
214 REM -----------------------------------------------------------------------------------------------------------------------
215 Property Get YPos() As Variant
216 YPos = _PropertyGet(&quot;YPos&quot;)
217 End Property &apos; YPos (get)
219 REM -----------------------------------------------------------------------------------------------------------------------
220 REM --- CLASS METHODS ---
221 REM -----------------------------------------------------------------------------------------------------------------------
222 Public Function getProperty(Optional ByVal pvProperty As Variant) As Variant
223 &apos; Return property value of psProperty property name
225 Utils._SetCalledSub(&quot;Form.getProperty&quot;)
226 If IsMissing(pvProperty) Then Call _TraceArguments()
227 getProperty = _PropertyGet(pvProperty)
228 Utils._ResetCalledSub(&quot;Form.getProperty&quot;)
230 End Function &apos; getProperty
232 REM -----------------------------------------------------------------------------------------------------------------------
233 Public Function hasProperty(ByVal Optional pvProperty As Variant) As Boolean
234 &apos; Return True if object has a valid property called pvProperty (case-insensitive comparison !)
236 If IsMissing(pvProperty) Then hasProperty = PropertiesGet._hasProperty(_Type, _PropertiesList()) Else hasProperty = PropertiesGet._hasProperty(_Type, _PropertiesList(), pvProperty)
237 Exit Function
239 End Function &apos; hasProperty
241 REM -----------------------------------------------------------------------------------------------------------------------
242 REM --- PRIVATE FUNCTIONS ---
243 REM -----------------------------------------------------------------------------------------------------------------------
244 Public Sub _Initialize(poEvent As Object)
246 Dim oObject As Object, i As Integer
247 Dim sShortcut As String, sAddShortcut As String, sArray() As String
248 Dim sImplementation As String, oSelection As Object
249 Dim iCurrentDoc As Integer, oDoc As Object
250 Const cstDatabaseForm = &quot;com.sun.star.comp.forms.ODatabaseForm&quot;
252 If _ErrorHandler() Then On Local Error Goto Error_Function
254 Set oObject = poEvent.Source
255 _EventSource = oObject
256 sArray = Split(Utils._getUNOTypeName(poEvent), &quot;.&quot;)
257 _EventType = UCase(sArray(UBound(sArray))
258 If Utils._hasUNOProperty(poEvent, &quot;EventName&quot;) Then _EventName = poEvent.EventName
260 Select Case _EventType
261 Case &quot;DOCUMENTEVENT&quot;
262 &apos;SubComponent processing
263 Select Case UCase(_EventName)
264 Case UCase(&quot;OnSubComponentClosed&quot;), UCase(&quot;OnSubComponentOpened&quot;)
265 Set oSelection = poEvent.ViewController.getSelection()(0)
266 _SubComponentName = oSelection.Name
267 With com.sun.star.sdb.application.DatabaseObject
268 Select Case oSelection.Type
269 Case .TABLE : _SubComponentType = acTable
270 Case .QUERY : _SubComponentType = acQuery
271 Case .FORM : _SubComponentType = acForm
272 Case .REPORT : _SubComponentType = acReport
273 Case Else
274 End Select
275 End With
276 Case Else
277 End Select
278 Case &quot;EVENTOBJECT&quot;
279 Case &quot;ACTIONEVENT&quot;
280 Case &quot;FOCUSEVENT&quot;
281 _FocusChangeTemporary = poEvent.Temporary
282 Case &quot;ITEMEVENT&quot;
283 Case &quot;INPUTEVENT&quot;, &quot;KEYEVENT&quot;
284 _KeyCode = poEvent.KeyCode
285 _KeyChar = poEvent.KeyChar
286 _KeyFunction = poEvent.KeyFunc
287 _KeyAlt = Utils._BitShift(poEvent.Modifiers, com.sun.star.awt.KeyModifier.MOD2)
288 _KeyCtrl = Utils._BitShift(poEvent.Modifiers, com.sun.star.awt.KeyModifier.MOD1)
289 _KeyShift = Utils._BitShift(poEvent.Modifiers, com.sun.star.awt.KeyModifier.SHIFT)
290 Case &quot;MOUSEEVENT&quot;
291 _ButtonLeft = Utils._BitShift(poEvent.Buttons, com.sun.star.awt.MouseButton.LEFT)
292 _ButtonRight = Utils._BitShift(poEvent.Buttons, com.sun.star.awt.MouseButton.RIGHT)
293 _ButtonMiddle = Utils._BitShift(poEvent.Buttons, com.sun.star.awt.MouseButton.MIDDLE)
294 _XPos = poEvent.X
295 _YPos = poEvent.Y
296 _ClickCount = poEvent.ClickCount
297 Case &quot;ROWCHANGEEVENT&quot;
298 _RowChangeAction = poEvent.Action
299 Case &quot;TEXTEVENT&quot;
300 Case &quot;ADJUSTMENTEVENT&quot;, &quot;DOCKINGEVENT&quot;, &quot;ENDDOCKINGEVENT&quot;, &quot;ENDPOPUPMODEEVENT&quot;, &quot;ENHANCEDMOUSEEVENT&quot; _
301 , &quot;MENUEVENT&quot;, &quot;PAINTEVENT&quot;, &quot;SPINEVENT&quot;, &quot;VCLCONTAINEREVENT&quot;, &quot;WINDOWEVENT&quot;
302 Goto Exit_Function
303 Case Else
304 Goto Exit_Function
305 End Select
307 &apos; Evaluate ContextShortcut
308 sShortcut = &quot;&quot;
309 sImplementation = Utils._ImplementationName(oObject)
311 Select Case True
312 Case sImplementation = &quot;stardiv.Toolkit.UnoDialogControl&quot; &apos; Dialog
313 _ContextShortcut = &quot;Dialogs!&quot; &amp; _EventSource.Model.Name
314 Goto Exit_Function
315 Case Left(sImplementation, 16) = &quot;stardiv.Toolkit.&quot; &apos; Control in Dialog
316 _ContextShortcut = &quot;Dialogs!&quot; &amp; _EventSource.Context.Model.Name _
317 &amp; &quot;!&quot; &amp; _EventSource.Model.Name
318 Goto Exit_Function
319 Case Else
320 End Select
322 iCurrentDoc = _A2B_.CurrentDocIndex(, False)
323 If iCurrentDoc &lt; 0 Then Goto Exit_Function
324 Set oDoc = _A2B_.CurrentDocument(iCurrentDoc)
326 &apos; To manage 2x triggers of &quot;Before record action&quot; form event
327 If _EventType = &quot;ROWCHANGEEVENT&quot; And sImplementation &lt;&gt; &quot;com.sun.star.comp.forms.ODatabaseForm&quot; Then _Recommendation = &quot;IGNORE&quot;
329 Do While sImplementation &lt;&gt; &quot;SwXTextDocument&quot;
330 sAddShortcut = &quot;&quot;
331 Select Case sImplementation
332 Case &quot;com.sun.star.comp.forms.OFormsCollection&quot; &apos; Do nothing
333 Case Else
334 If Utils._hasUNOProperty(oObject, &quot;Model&quot;) Then
335 If oObject.Model.Name &lt;&gt; &quot;MainForm&quot; And oObject.Model.Name &lt;&gt; &quot;Form&quot; Then sAddShortcut = Utils._Surround(oObject.Model.Name)
336 ElseIf Utils._hasUNOProperty(oObject, &quot;Name&quot;) Then
337 If oObject.Name &lt;&gt; &quot;MainForm&quot; And oObject.Name &lt;&gt; &quot;Form&quot; Then sAddShortcut = Utils._Surround(oObject.Name)
338 End If
339 If sAddShortcut &lt;&gt; &quot;&quot; Then
340 If sImplementation = cstDatabaseForm And oDoc.DbConnect = DBCONNECTBASE Then sAddShortcut = sAddShortcut &amp; &quot;.Form&quot;
341 sShortcut = sAddShortcut &amp; Iif(Len(sShortcut) &gt; 0, &quot;!&quot; &amp; sShortcut, &quot;&quot;)
342 End If
343 End Select
344 Select Case True
345 Case Utils._hasUNOProperty(oObject, &quot;Model&quot;)
346 Set oObject = oObject.Model.Parent
347 Case Utils._hasUNOProperty(oObject, &quot;Parent&quot;)
348 Set oObject = oObject.Parent
349 Case Else
350 Goto Exit_Function
351 End Select
352 sImplementation = Utils._ImplementationName(oObject)
353 Loop
354 &apos; Add Forms! prefix
355 &apos; Select Case oDoc.DbConnect
356 &apos; Case DBCONNECTBASE
357 If Utils._hasUNOProperty(oObject, &quot;Args&quot;) Then &apos; Current object is a SwXTextDocument
358 For i = 0 To UBound(oObject.Args)
359 If oObject.Args(i).Name = &quot;DocumentTitle&quot; Then
360 sAddShortcut = Utils._Surround(oObject.Args(i).Value)
361 Exit For
362 End If
363 Next i
364 End If
365 sShortcut = &quot;Forms!&quot; &amp; sAddShortcut &amp; &quot;!&quot; &amp; sShortcut
366 &apos; Case DBCONNECTFORM
367 &apos; sShortcut = &quot;Forms!0!&quot; &amp; sShortcut
368 &apos; End Select
370 sArray = Split(sShortcut, &quot;!&quot;)
371 &apos; If presence of &quot;Forms!myform!myform.Form&quot;, eliminate 2nd element
372 &apos; Eliminate anyway blanco subcomponents (e.g; Forms!!myForm)
373 If UBound(sArray) &gt;= 2 Then
374 If UCase(sArray(1)) &amp; &quot;.FORM&quot; = UCase(sArray(2)) Then sArray(1) = &quot;&quot;
375 sArray = Utils._TrimArray(sArray)
376 End If
377 &apos; If first element ends with .Form, remove suffix
378 If UBound(sArray) &gt;= 1 Then
379 If Len(sArray(1)) &gt; 5 And Right(sArray(1), 5) = &quot;.Form&quot; Then sArray(1) = left(sArray(1), Len(sArray(1)) - 5)
380 sShortcut = Join(sArray, &quot;!&quot;)
381 End If
382 If Len(sShortcut) &gt;= 2 Then
383 If Right(sShortcut, 1) = &quot;!&quot; Then
384 _ContextShortcut = Left(sShortcut, Len(sShortcut) - 1)
385 Else
386 _ContextShortcut = sShortcut
387 End If
388 End If
390 Exit_Function:
391 Exit Sub
392 Error_Function:
393 TraceError(TRACEWARNING, Err, &quot;Event.Initialize&quot;, Erl)
394 GoTo Exit_Function
395 End Sub &apos; _Initialize V0.9.1
397 REM -----------------------------------------------------------------------------------------------------------------------
398 Private Function _PropertiesList() As Variant
400 Dim sSubComponentName As String, sSubComponentType As String
401 sSubComponentName = Iif(_SubComponentType &gt; -1, &quot;SubComponentName&quot;, &quot;&quot;)
402 sSubComponentType = Iif(_SubComponentType &gt; -1, &quot;SubComponentType&quot;, &quot;&quot;)
403 Dim sXPos As String, sYPos As String
404 sXPos = Iif(IsNull(_XPos), &quot;&quot;, &quot;XPos&quot;)
405 sYPos = Iif(IsNull(_YPos), &quot;&quot;, &quot;YPos&quot;)
407 _PropertiesList = Utils._TrimArray(Array( _
408 &quot;ButtonLeft&quot;, &quot;ButtonRight&quot;, &quot;ButtonMiddle&quot;, &quot;ClickCount&quot; _
409 , &quot;ContextShortcut&quot;, &quot;EventName&quot;, &quot;EventType&quot;, &quot;FocusChangeTemporary&quot;, _
410 , &quot;KeyAlt&quot;, &quot;KeyChar&quot;, &quot;KeyCode&quot;, &quot;KeyCtrl&quot;, &quot;KeyFunction&quot;, &quot;KeyShift&quot; _
411 , &quot;ObjectType&quot;, &quot;Recommendation&quot;, &quot;RowChangeAction&quot;, &quot;Source&quot; _
412 , sSubComponentName, sSubComponentType, sXPos, sYPos _
415 End Function &apos; _PropertiesList
417 REM -----------------------------------------------------------------------------------------------------------------------
418 Private Function _PropertyGet(ByVal psProperty As String) As Variant
419 &apos; Return property value of the psProperty property name
421 If _ErrorHandler() Then On Local Error Goto Error_Function
422 Utils._SetCalledSub(&quot;Event.get&quot; &amp; psProperty)
423 Dim vEMPTY As Variant
424 _PropertyGet = vEMPTY
426 Select Case UCase(psProperty)
427 Case UCase(&quot;ButtonLeft&quot;)
428 _PropertyGet = _ButtonLeft
429 Case UCase(&quot;ButtonMiddle&quot;)
430 _PropertyGet = _ButtonMiddle
431 Case UCase(&quot;ButtonRight&quot;)
432 _PropertyGet = _ButtonRight
433 Case UCase(&quot;ClickCount&quot;)
434 _PropertyGet = _ClickCount
435 Case UCase(&quot;ContextShortcut&quot;)
436 _PropertyGet = _ContextShortcut
437 Case UCase(&quot;FocusChangeTemporary&quot;)
438 _PropertyGet = _FocusChangeTemporary
439 Case UCase(&quot;EventName&quot;)
440 _PropertyGet = _EventName
441 Case UCase(&quot;EventSource&quot;)
442 _PropertyGet = _EventSource
443 Case UCase(&quot;EventType&quot;)
444 _PropertyGet = _EventType
445 Case UCase(&quot;KeyAlt&quot;)
446 _PropertyGet = _KeyAlt
447 Case UCase(&quot;KeyChar&quot;)
448 _PropertyGet = _KeyChar
449 Case UCase(&quot;KeyCode&quot;)
450 _PropertyGet = _KeyCode
451 Case UCase(&quot;KeyCtrl&quot;)
452 _PropertyGet = _KeyCtrl
453 Case UCase(&quot;KeyFunction&quot;)
454 _PropertyGet = _KeyFunction
455 Case UCase(&quot;KeyShift&quot;)
456 _PropertyGet = _KeyShift
457 Case UCase(&quot;ObjectType&quot;)
458 _PropertyGet = _Type
459 Case UCase(&quot;Recommendation&quot;)
460 _PropertyGet = _Recommendation
461 Case UCase(&quot;RowChangeAction&quot;)
462 _PropertyGet = _RowChangeAction
463 Case UCase(&quot;Source&quot;)
464 If _ContextShortcut = &quot;&quot; Then
465 _PropertyGet = _EventSource
466 Else
467 _PropertyGet = getObject(_ContextShortcut)
468 End If
469 Case UCase(&quot;SubComponentName&quot;)
470 _PropertyGet = _SubComponentName
471 Case UCase(&quot;SubComponentType&quot;)
472 _PropertyGet = _SubComponentType
473 Case UCase(&quot;XPos&quot;)
474 If IsNull(_XPos) Then Goto Trace_Error
475 _PropertyGet = _XPos
476 Case UCase(&quot;YPos&quot;)
477 If IsNull(_YPos) Then Goto Trace_Error
478 _PropertyGet = _YPos
479 Case Else
480 Goto Trace_Error
481 End Select
483 Exit_Function:
484 Utils._ResetCalledSub(&quot;Event.get&quot; &amp; psProperty)
485 Exit Function
486 Trace_Error:
487 &apos; Errors are not displayed to avoid display infinite cycling
488 TraceError(TRACEWARNING, ERRPROPERTY, Utils._CalledSub(), 0, False, psProperty)
489 _PropertyGet = vEMPTY
490 Goto Exit_Function
491 Error_Function:
492 TraceError(TRACEABORT, Err, &quot;Event._PropertyGet&quot;, Erl)
493 _PropertyGet = vEMPTY
494 GoTo Exit_Function
495 End Function &apos; _PropertyGet V1.1.0
496 </script:module>