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=
"Form" script:
language=
"StarBasic">
4 REM =======================================================================================================================
5 REM === The Access2Base library is a part of the LibreOffice project. ===
6 REM === Full documentation is available on http://www.access2base.com ===
7 REM =======================================================================================================================
14 REM -----------------------------------------------------------------------------------------------------------------------
15 REM --- CLASS ROOT FIELDS ---
16 REM -----------------------------------------------------------------------------------------------------------------------
18 Private _Type As String
' Must be FORM
19 Private _This As Object
' Workaround for absence of This builtin function
20 Private _Parent As Object
21 Private _Shortcut As String
22 Private _Name As String
23 Private _DocEntry As Integer
' Doc- and DbContainer entries in Root structure
24 Private _DbEntry As Integer
25 Private _MainForms As Variant
26 Private _PersistentName As String
27 Private _IsLoaded As Boolean
28 Private _OpenArgs As Variant
29 Private _OrderBy As String
30 Public Component As Object
' com.sun.star.text.TextDocument
31 Public ContainerWindow As Object
' (No name)
32 Public FormsCollection As Object
' com.sun.star.form.OFormsCollection
33 Public DatabaseForm As Object
' com.sun.star.form.component.DataForm and com.sun.star.sdb.ResultSet (a.o.)
35 REM -----------------------------------------------------------------------------------------------------------------------
36 REM --- CONSTRUCTORS / DESTRUCTORS ---
37 REM -----------------------------------------------------------------------------------------------------------------------
38 Private Sub Class_Initialize()
42 _Shortcut =
""
47 _PersistentName =
""
49 _OpenArgs =
""
50 _OrderBy =
""
51 Set Component = Nothing
52 Set ContainerWindow = Nothing
53 Set FormsCollection = Nothing
54 Set DatabaseForm = Nothing
55 End Sub
' Constructor
57 REM -----------------------------------------------------------------------------------------------------------------------
58 Private Sub Class_Terminate()
59 On Local Error Resume Next
60 Call Class_Initialize()
61 End Sub
' Destructor
63 REM -----------------------------------------------------------------------------------------------------------------------
66 If Not IsLoaded(True) Then
67 If Not IsNull(DatabaseForm) Then DatabaseForm.Dispose()
69 Call Class_Terminate()
70 End Sub
' Explicit destructor
72 REM -----------------------------------------------------------------------------------------------------------------------
73 REM --- CLASS GET/LET/SET PROPERTIES ---
74 REM -----------------------------------------------------------------------------------------------------------------------
75 Property Get AllowAdditions() As Variant
76 AllowAdditions = _PropertyGet(
"AllowAdditions
")
77 End Property
' AllowAdditions (get)
79 Property Let AllowAdditions(ByVal pvValue As Variant)
80 Call _PropertySet(
"AllowAdditions
", pvValue)
81 End Property
' AllowAdditions (set)
83 REM -----------------------------------------------------------------------------------------------------------------------
84 Property Get AllowDeletions() As Variant
85 AllowDeletions = _PropertyGet(
"AllowDeletions
")
86 End Property
' AllowDeletions (get)
88 Property Let AllowDeletions(ByVal pvValue As Variant)
89 Call _PropertySet(
"AllowDeletions
", pvValue)
90 End Property
' AllowDeletions (set)
92 REM -----------------------------------------------------------------------------------------------------------------------
93 Property Get AllowEdits() As Variant
94 AllowEdits = _PropertyGet(
"AllowEdits
")
95 End Property
' AllowEdits (get)
97 Property Let AllowEdits(ByVal pvValue As Variant)
98 Call _PropertySet(
"AllowEdits
", pvValue)
99 End Property
' AllowEdits (set)
101 REM -----------------------------------------------------------------------------------------------------------------------
102 Property Get Bookmark() As Variant
103 Bookmark = _PropertyGet(
"Bookmark
")
104 End Property
' Bookmark (get)
106 Property Let Bookmark(ByVal pvValue As Variant)
107 Call _PropertySet(
"Bookmark
", pvValue)
108 End Property
' Bookmark (set)
110 REM -----------------------------------------------------------------------------------------------------------------------
111 Property Get Caption() As Variant
112 Caption = _PropertyGet(
"Caption
")
113 End Property
' Caption (get)
115 Property Let Caption(ByVal pvValue As Variant)
116 Call _PropertySet(
"Caption
", pvValue)
117 End Property
' Caption (set)
119 REM -----------------------------------------------------------------------------------------------------------------------
120 Property Get CurrentRecord() As Variant
121 CurrentRecord = _PropertyGet(
"CurrentRecord
")
122 End Property
' CurrentRecord (get)
124 Property Let CurrentRecord(ByVal pvValue As Variant)
125 Call _PropertySet(
"CurrentRecord
", pvValue)
126 End Property
' CurrentRecord (set)
128 REM -----------------------------------------------------------------------------------------------------------------------
129 Property Get Filter() As Variant
130 Filter = _PropertyGet(
"Filter
")
131 End Property
' Filter (get)
133 Property Let Filter(ByVal pvValue As Variant)
134 Call _PropertySet(
"Filter
", pvValue)
135 End Property
' Filter (set)
137 REM -----------------------------------------------------------------------------------------------------------------------
138 Property Get FilterOn() As Variant
139 FilterOn = _PropertyGet(
"FilterOn
")
140 End Property
' FilterOn (get)
142 Property Let FilterOn(ByVal pvValue As Variant)
143 Call _PropertySet(
"FilterOn
", pvValue)
144 End Property
' FilterOn (set)
146 REM -----------------------------------------------------------------------------------------------------------------------
147 Property Get Height() As Variant
148 Height = _PropertyGet(
"Height
")
149 End Property
' Height (get)
151 Property Let Height(ByVal pvValue As Variant)
152 Call _PropertySet(
"Height
", pvValue)
153 End Property
' Height (set)
155 REM -----------------------------------------------------------------------------------------------------------------------
156 Function IsLoaded(ByVal Optional pbForce As Boolean) As Boolean
157 'Return True if form open
158 'pbForce = True forbids bypass on value of _IsLoaded
160 If _ErrorHandler() Then On Local Error Goto Error_Function
161 Utils._SetCalledSub(
"Form.getIsLoaded
")
162 If IsMissing(pbForce) Then pbForce = False
163 If ( Not pbForce ) And _IsLoaded Then
' For performance reasons, a form object, once detected as loaded, is presumed remaining loaded. Except if pbForce = True
169 Dim oDoc As Object, oDatabase As Object, oEnum As Object, oDesk As Object, oComp As Object, vPersistent As Variant
171 Set oDoc = _A2B_.CurrentDocument()
172 Select Case oDoc.DbConnect
174 Set oDesk = CreateUnoService(
"com.sun.star.frame.Desktop
")
175 Set oEnum = oDesk.Components().createEnumeration
176 Do While oEnum.hasMoreElements
' Search in all open components if one corresponds with current form
177 oComp = oEnum.nextElement
178 If _hasUNOProperty(oComp,
"Identifier
") Then
179 If oComp.Identifier =
"com.sun.star.sdb.FormDesign
" Then
180 vPersistent = Split(oComp.StringValue,
"/
")
181 If vPersistent(UBound(vPersistent) -
1) = _PersistentName Then
183 Set Component = oComp
190 Set Component = oDoc.Document
' Form
191 _IsLoaded = True
' Interactive form always loaded by design
197 Utils._ResetCalledSub(
"Form.getIsLoaded
")
200 TraceError(TRACEABORT, Err,
"Form.getIsLoaded
", Erl)
202 End Function
' IsLoaded V1.1
.0
204 REM -----------------------------------------------------------------------------------------------------------------------
205 Property Get Name() As String
206 Name = _PropertyGet(
"Name
")
207 End Property
' Name (get)
209 Public Function pName() As String
' For compatibility with
< V0.9
.0
210 pName = _PropertyGet(
"Name
")
211 End Function
' pName (get)
213 REM -----------------------------------------------------------------------------------------------------------------------
214 Property Get ObjectType() As String
215 ObjectType = _PropertyGet(
"ObjectType
")
216 End Property
' ObjectType (get)
218 REM -----------------------------------------------------------------------------------------------------------------------
219 Property Get OnApproveCursorMove() As Variant
220 OnApproveCursorMove = _PropertyGet(
"OnApproveCursorMove
")
221 End Property
' OnApproveCursorMove (get)
223 Property Let OnApproveCursorMove(ByVal pvValue As Variant)
224 Call _PropertySet(
"OnApproveCursorMove
", pvValue)
225 End Property
' OnApproveCursorMove (set)
227 REM -----------------------------------------------------------------------------------------------------------------------
228 Property Get OnApproveParameter() As Variant
229 OnApproveParameter = _PropertyGet(
"OnApproveParameter
")
230 End Property
' OnApproveParameter (get)
232 Property Let OnApproveParameter(ByVal pvValue As Variant)
233 Call _PropertySet(
"OnApproveParameter
", pvValue)
235 End Property
' OnApproveParameter (set)
237 REM -----------------------------------------------------------------------------------------------------------------------
238 Property Get OnApproveReset() As Variant
239 OnApproveReset = _PropertyGet(
"OnApproveReset
")
240 End Property
' OnApproveReset (get)
242 Property Let OnApproveReset(ByVal pvValue As Variant)
243 Call _PropertySet(
"OnApproveReset
", pvValue)
244 End Property
' OnApproveReset (set)
246 REM -----------------------------------------------------------------------------------------------------------------------
247 Property Get OnApproveRowChange() As Variant
248 OnApproveRowChange = _PropertyGet(
"OnApproveRowChange
")
249 End Property
' OnApproveRowChange (get)
251 Property Let OnApproveRowChange(ByVal pvValue As Variant)
252 Call _PropertySet(
"OnApproveRowChange
", pvValue)
253 End Property
' OnApproveRowChange (set)
255 REM -----------------------------------------------------------------------------------------------------------------------
256 Property Get OnApproveSubmit() As Variant
257 OnApproveSubmit = _PropertyGet(
"OnApproveSubmit
")
258 End Property
' OnApproveSubmit (get)
260 Property Let OnApproveSubmit(ByVal pvValue As Variant)
261 Call _PropertySet(
"OnApproveSubmit
", pvValue)
262 End Property
' OnApproveSubmit (set)
264 REM -----------------------------------------------------------------------------------------------------------------------
265 Property Get OnConfirmDelete() As Variant
266 OnConfirmDelete = _PropertyGet(
"OnConfirmDelete
")
267 End Property
' OnConfirmDelete (get)
269 Property Let OnConfirmDelete(ByVal pvValue As Variant)
270 Call _PropertySet(
"OnConfirmDelete
", pvValue)
271 End Property
' OnConfirmDelete (set)
273 REM -----------------------------------------------------------------------------------------------------------------------
274 Property Get OnCursorMoved() As Variant
275 OnCursorMoved = _PropertyGet(
"OnCursorMoved
")
276 End Property
' OnCursorMoved (get)
278 Property Let OnCursorMoved(ByVal pvValue As Variant)
279 Call _PropertySet(
"OnCursorMoved
", pvValue)
280 End Property
' OnCursorMoved (set)
282 REM -----------------------------------------------------------------------------------------------------------------------
283 Property Get OnErrorOccurred() As Variant
284 OnErrorOccurred = _PropertyGet(
"OnErrorOccurred
")
285 End Property
' OnErrorOccurred (get)
287 Property Let OnErrorOccurred(ByVal pvValue As Variant)
288 Call _PropertySet(
"OnErrorOccurred
", pvValue)
289 End Property
' OnErrorOccurred (set)
291 REM -----------------------------------------------------------------------------------------------------------------------
292 Property Get OnLoaded() As Variant
293 OnLoaded = _PropertyGet(
"OnLoaded
")
294 End Property
' OnLoaded (get)
296 Property Let OnLoaded(ByVal pvValue As Variant)
297 Call _PropertySet(
"OnLoaded
", pvValue)
298 End Property
' OnLoaded (set)
300 REM -----------------------------------------------------------------------------------------------------------------------
301 Property Get OnReloaded() As Variant
302 OnReloaded = _PropertyGet(
"OnReloaded
")
303 End Property
' OnReloaded (get)
305 Property Let OnReloaded(ByVal pvValue As Variant)
306 Call _PropertySet(
"OnReloaded
", pvValue)
307 End Property
' OnReloaded (set)
309 REM -----------------------------------------------------------------------------------------------------------------------
310 Property Get OnReloading() As Variant
311 OnReloading = _PropertyGet(
"OnReloading
")
312 End Property
' OnReloading (get)
314 Property Let OnReloading(ByVal pvValue As Variant)
315 Call _PropertySet(
"OnReloading
", pvValue)
316 End Property
' OnReloading (set)
318 REM -----------------------------------------------------------------------------------------------------------------------
319 Property Get OnResetted() As Variant
320 OnResetted = _PropertyGet(
"OnResetted
")
321 End Property
' OnResetted (get)
323 Property Let OnResetted(ByVal pvValue As Variant)
324 Call _PropertySet(
"OnResetted
", pvValue)
325 End Property
' OnResetted (set)
327 REM -----------------------------------------------------------------------------------------------------------------------
328 Property Get OnRowChanged() As Variant
329 OnRowChanged = _PropertyGet(
"OnRowChanged
")
330 End Property
' OnRowChanged (get)
332 Property Let OnRowChanged(ByVal pvValue As Variant)
333 Call _PropertySet(
"OnRowChanged
", pvValue)
334 End Property
' OnRowChanged (set)
336 REM -----------------------------------------------------------------------------------------------------------------------
337 Property Get OnUnloaded() As Variant
338 OnUnloaded = _PropertyGet(
"OnUnloaded
")
339 End Property
' OnUnloaded (get)
341 Property Let OnUnloaded(ByVal pvValue As Variant)
342 Call _PropertySet(
"OnUnloaded
", pvValue)
343 End Property
' OnUnloaded (set)
345 REM -----------------------------------------------------------------------------------------------------------------------
346 Property Get OnUnloading() As Variant
347 OnUnloading = _PropertyGet(
"OnUnloading
")
348 End Property
' OnUnloading (get)
350 Property Let OnUnloading(ByVal pvValue As Variant)
351 Call _PropertySet(
"OnUnloading
", pvValue)
352 End Property
' OnUnloading (set)
354 REM -----------------------------------------------------------------------------------------------------------------------
355 Property Get OpenArgs() As Variant
356 OpenArgs = _PropertyGet(
"OpenArgs
")
357 End Property
' OpenArgs (get)
359 REM -----------------------------------------------------------------------------------------------------------------------
360 Property Get OrderBy() As Variant
361 OrderBy = _PropertyGet(
"OrderBy
")
362 End Property
' OrderBy (get) V1.2
.0
364 Property Let OrderBy(ByVal pvValue As Variant)
365 Call _PropertySet(
"OrderBy
", pvValue)
366 End Property
' OrderBy (set)
368 REM -----------------------------------------------------------------------------------------------------------------------
369 Property Get OrderByOn() As Variant
370 OrderByOn = _PropertyGet(
"OrderByOn
")
371 End Property
' OrderByOn (get) V1.2
.0
373 Property Let OrderByOn(ByVal pvValue As Variant)
374 Call _PropertySet(
"OrderByOn
", pvValue)
375 End Property
' OrderByOn (set)
377 REM -----------------------------------------------------------------------------------------------------------------------
378 Public Function OptionGroup(ByVal Optional pvGroupName As Variant) As Variant
379 ' Return either an error or an object of type OPTIONGROUP based on its name
381 Const cstThisSub =
"Form.OptionGroup
"
382 Dim ogGroup As Object
383 Utils._SetCalledSub(cstThisSub)
384 If IsMissing(pvGroupName) Then Call _TraceArguments()
385 If _ErrorHandler() Then On Local Error Goto Error_Function
387 Set ogGroup = _OptionGroup(pvGroupName, CTLPARENTISFORM, Component, FormsCollection)
388 If Not IsNull(ogGroup) Then
389 ogGroup._DocEntry = _DocEntry
390 ogGroup._DbEntry = _DbEntry
392 Set OptionGroup = ogGroup
395 Utils._ResetCalledSub(cstThisSub)
398 TraceError(TRACEABORT, Err, Form.OptionGroup, Erl)
400 End Function
' OptionGroup V1.1
.0
402 REM -----------------------------------------------------------------------------------------------------------------------
403 Public Function Parent() As Object
405 End Function
' Parent (get) V6.4
.0
407 REM -----------------------------------------------------------------------------------------------------------------------
408 Public Function Properties(ByVal Optional pvIndex As Variant) As Variant
410 ' a Collection object if pvIndex absent
411 ' a Property object otherwise
413 Dim vProperty As Variant, vPropertiesList() As Variant, sObject As String
414 vPropertiesList = _PropertiesList()
415 sObject = Utils._PCase(_Type)
416 If IsMissing(pvIndex) Then
417 vProperty = PropertiesGet._Properties(sObject, _This, vPropertiesList)
419 vProperty = PropertiesGet._Properties(sObject, _This, vPropertiesList, pvIndex)
420 vProperty._Value = _PropertyGet(vPropertiesList(pvIndex))
424 Set Properties = vProperty
426 End Function
' Properties
428 REM -----------------------------------------------------------------------------------------------------------------------
429 Property Get Recordset() As Object
430 Recordset = _PropertyGet(
"Recordset
")
431 End Property
' Recordset (get) V0.9
.5
433 REM -----------------------------------------------------------------------------------------------------------------------
434 Property Get RecordSource() As Variant
435 RecordSource = _PropertyGet(
"RecordSource
")
436 End Property
' RecordSource (get)
438 Property Let RecordSource(ByVal pvValue As Variant)
439 Call _PropertySet(
"RecordSource
", pvValue)
440 End Property
' RecordSource (set)
442 REM -----------------------------------------------------------------------------------------------------------------------
443 Property Get Visible() As Variant
444 Visible = _PropertyGet(
"Visible
")
445 End Property
' Visible (get)
447 Property Let Visible(ByVal pvValue As Variant)
448 Call _PropertySet(
"Visible
", pvValue)
449 End Property
' Visible (set)
451 REM -----------------------------------------------------------------------------------------------------------------------
452 Property Get Width() As Variant
453 Width = _PropertyGet(
"Width
")
454 End Property
' Width (get)
456 Property Let Width(ByVal pvValue As Variant)
457 Call _PropertySet(
"Width
", pvValue)
458 End Property
' Width (set)
460 REM -----------------------------------------------------------------------------------------------------------------------
461 REM --- CLASS METHODS ---
462 REM -----------------------------------------------------------------------------------------------------------------------
464 Public Function mClose() As Variant
465 ' Close the form
467 If _ErrorHandler() Then On Local Error Goto Error_Function
468 Utils._SetCalledSub(
"Form.Close
")
470 Dim oDatabase As Object, oController As Object
471 Set oDatabase = Application._CurrentDb()
472 If oDatabase._DbConnect
<> DBCONNECTBASE Then Goto Error_NotApplicable
474 Set oController = oDatabase.Document.getFormDocuments.getByHierarchicalName(_Name)
480 Utils._ResetCalledSub(
"Form.Close
")
483 TraceError(TRACEFATAL, ERRMETHOD, Utils._CalledSub(),
0,
1, cstThisSub)
486 TraceError(TRACEABORT, Err,
"Form.Close
", Erl)
488 End Function
' Close
490 REM -----------------------------------------------------------------------------------------------------------------------
491 Public Function Controls(Optional ByVal pvIndex As Variant) As Variant
492 ' Return a Control object with name or index = pvIndex
494 If _ErrorHandler() Then On Local Error Goto Error_Function
495 Utils._SetCalledSub(
"Form.Controls
")
497 Dim ocControl As Variant, iControlCount As Integer
498 Dim oCounter As Variant, sControls() As Variant, i As Integer, bFound As Boolean, sIndex As String
499 Dim j As Integer, iCount As Integer, sName As String, iAddCount As Integer
500 Dim oDatabaseForm As Object, iCtlCount As Integer
502 Set ocControl = Nothing
503 If Not IsLoaded Then Goto Trace_Error_NotOpen
504 'Count number of controls thru the forms collection
507 iCount = FormsCollection.Count
508 For i =
0 To iCount -
1
509 If i =
0 Then Set oDatabaseForm = DatabaseForm Else Set oDatabaseForm = FormsCollection.getByIndex(i)
510 If Not IsNull(oDatabaseForm) Then iControlCount = iControlCount + oDatabaseForm.getCount()
513 If IsMissing(pvIndex) Then
' No argument, return Collection pseudo-object
514 Set oCounter = New Collect
515 Set oCounter._This = oCounter
516 oCounter._CollType = COLLCONTROLS
517 Set oCounter._Parent = _This
518 oCounter._Count = iControlCount
519 Set Controls = oCounter
523 If Not Utils._CheckArgument(pvIndex,
1, Utils._AddNumeric(vbString)) Then Goto Exit_Function
525 ' Start building the ocControl object
526 ' Determine exact name
529 Select Case VarType(pvIndex)
530 Case vbInteger, vbLong, vbSingle, vbDouble, vbCurrency, vbBigint, vbDecimal
531 If pvIndex
< 0 Or pvIndex
> iControlCount -
1 Then Goto Trace_Error_Index
533 For i =
0 To iCount -
1
534 If i =
0 Then Set oDatabaseForm = DatabaseForm Else Set oDatabaseForm = FormsCollection.getByIndex(i)
535 If Not IsNull(oDatabaseForm) Then
536 iCtlCount = oDatabaseForm.getCount()
537 If pvIndex
>= iAddCount And pvIndex
<= iAddcount + iCtlCount -
1 Then
538 sName = oDatabaseForm.ElementNames(pvIndex - iAddCount)
541 iAddCount = iAddcount +iCtlCount
544 Case vbString
' Check control name validity (non case sensitive)
545 sIndex = UCase(Utils._Trim(pvIndex))
547 For i =
0 To iCount -
1
548 If i =
0 Then Set oDatabaseForm = DatabaseForm Else Set oDatabaseForm = FormsCollection.getByIndex(i)
549 If Not IsNull(oDatabaseForm) Then
550 sControls() = oDatabaseForm.getElementNames()
551 For j =
0 To UBound(sControls)
552 If UCase(sControls(j)) = sIndex Then
558 If bFound Then Exit For
561 If Not bFound Then Goto Trace_NotFound
564 'Initialize a new Control object
565 Set ocControl = New Control
567 Set ._This = ocControl
569 ._ParentType = CTLPARENTISFORM
571 ._Shortcut = _Shortcut
& "!
" & Utils._Surround(sName)
572 If IsNull(oDatabaseForm) Then ._MainForm =
"" Else ._MainForm = oDatabaseForm.Name
573 Set .ControlModel = oDatabaseForm.getByName(sName)
574 ._ImplementationName = .ControlModel.getImplementationName()
575 ._FormComponent = Component
576 If Utils._hasUNOProperty(.ControlModel,
"ClassId
") Then ._ClassId = .ControlModel.ClassId
577 If ._ClassId
> 0 And ._ClassId
<> acHiddenControl Then
578 Set .ControlView = Component.CurrentController.getControl(.ControlModel)
582 ._DocEntry = _DocEntry
585 Set Controls = ocControl
588 Utils._ResetCalledSub(
"Form.Controls
")
591 TraceError(TRACEFATAL, ERRFORMNOTOPEN, Utils._CalledSub(),
0, , _Name)
592 Set Controls = Nothing
595 TraceError(TRACEFATAL, ERRCOLLECTION, Utils._CalledSub(),
0,
1)
596 Set Controls = Nothing
599 TraceError(TRACEFATAL, ERRCONTROLNOTFOUND, Utils._CalledSub(),
0, , Array(pvIndex, pvIndex))
600 Set Controls = Nothing
603 TraceError(TRACEABORT, Err,
"Form.Controls
", Erl)
604 Set Controls = Nothing
606 End Function
' Controls
608 REM -----------------------------------------------------------------------------------------------------------------------
609 Public Function CurrentDb() As Object
610 ' Returns Database object related to current form
612 Const cstThisSub =
"Form.CurrentDb
"
613 Utils._SetCalledSub(cstThisSub)
615 Set CurrentDb = Application._CurrentDb(_DocEntry, _DbEntry)
618 Utils._ResetCalledSub(cstThisSub)
620 End Function
' CurrentDb V1.1
.0
622 REM -----------------------------------------------------------------------------------------------------------------------
623 Public Function getProperty(Optional ByVal pvProperty As Variant) As Variant
624 ' Return property value of psProperty property name
626 Utils._SetCalledSub(
"Form.getProperty
")
627 If IsMissing(pvProperty) Then Call _TraceArguments()
628 getProperty = _PropertyGet(pvProperty)
629 Utils._ResetCalledSub(
"Form.getProperty
")
631 End Function
' getProperty
633 REM -----------------------------------------------------------------------------------------------------------------------
634 Public Function hasProperty(ByVal Optional pvProperty As Variant) As Boolean
635 ' Return True if object has a valid property called pvProperty (case-insensitive comparison !)
637 If IsMissing(pvProperty) Then hasProperty = PropertiesGet._hasProperty(_Type, _PropertiesList()) Else hasProperty = PropertiesGet._hasProperty(_Type, _PropertiesList(), pvProperty)
640 End Function
' hasProperty
642 REM -----------------------------------------------------------------------------------------------------------------------
643 Public Function Move( ByVal Optional pvLeft As Variant _
644 , ByVal Optional pvTop As Variant _
645 , ByVal Optional pvWidth As Variant _
646 , ByVal Optional pvHeight As Variant _
648 ' Execute Move method
649 Utils._SetCalledSub(
"Form.Move
")
650 If _ErrorHandler() Then On Local Error Goto Error_Function
652 Dim iArgNr As Integer
653 Select Case UCase(_A2B_.CalledSub)
654 Case UCase(
"Move
") : iArgNr =
1
655 Case UCase(
"Form.Move
") : iArgNr =
0
657 If IsMissing(pvLeft) Then pvLeft = -
1
658 If IsMissing(pvTop) Then pvTop = -
1
659 If IsMissing(pvWidth) Then pvWidth = -
1
660 If IsMissing(pvHeight) Then pvHeight = -
1
661 If Not Utils._CheckArgument(pvLeft, iArgNr +
1, Utils._AddNumeric()) Then Goto Exit_Function
662 If Not Utils._CheckArgument(pvTop, iArgNr +
2, Utils._AddNumeric()) Then Goto Exit_Function
663 If Not Utils._CheckArgument(pvWidth, iArgNr +
3, Utils._AddNumeric()) Then Goto Exit_Function
664 If Not Utils._CheckArgument(pvHeight, iArgNr +
4, Utils._AddNumeric()) Then Goto Exit_Function
666 Dim iArg As Integer, iWrong As Integer
' Check arguments values
668 If pvHeight
< -
1 Then
669 iArg =
4 : iWrong = pvHeight
670 ElseIf pvWidth
< -
1 Then
671 iArg =
3 : iWrong = pvWidth
672 ElseIf pvTop
< -
1 Then
673 iArg =
2 : iWrong = pvTop
674 ElseIf pvLeft
< -
1 Then
675 iArg =
1 : iWrong = pvLeft
678 TraceError(TRACEFATAL, ERRWRONGARGUMENT, Utils._CalledSub(),
0,
1, Array(iArgNr + iArg, iWrong))
682 Dim iPosSize As Integer
684 If pvLeft
>=
0 Then iPosSize = iPosSize + com.sun.star.awt.PosSize.X
685 If pvTop
>=
0 Then iPosSize = iPosSize + com.sun.star.awt.PosSize.Y
686 If pvWidth
> 0 Then iPosSize = iPosSize + com.sun.star.awt.PosSize.WIDTH
687 If pvHeight
> 0 Then iPosSize = iPosSize + com.sun.star.awt.PosSize.HEIGHT
688 If iPosSize
> 0 Then
689 If Utils._hasUNOProperty(ContainerWindow,
"IsMaximized
") Then
' Ignored when
<= OO3.2
690 ContainerWindow.IsMaximized = False
691 ContainerWindow.IsMinimized = False
693 ContainerWindow.setPosSize(pvLeft, pvTop, pvWidth, pvHeight, iPosSize)
698 Utils._ResetCalledSub(
"Form.Move
")
701 TraceError(TRACEABORT, Err,
"Form.Move
", Erl)
703 End Function
' Move
705 REM -----------------------------------------------------------------------------------------------------------------------
706 Public Function Refresh() As Boolean
707 ' Refresh data with its most recent value in the database in a form or subform
708 Utils._SetCalledSub(
"Form.Refresh
")
709 If _ErrorHandler() Then On Local Error Goto Error_Function
713 Set oSet = DatabaseForm.createResultSet()
714 If Not IsNull(oSet) Then
721 Utils._ResetCalledSub(
"Form.Refresh
")
724 TraceError(TRACEABORT, Err,
"SubForm.Refresh
", Erl)
726 End Function
' Refresh
728 REM -----------------------------------------------------------------------------------------------------------------------
729 Public Function Requery() As Boolean
730 ' Refresh data displayed in a form, subform, combobox or listbox
731 Utils._SetCalledSub(
"Form.Requery
")
732 If _ErrorHandler() Then On Local Error Goto Error_Function
735 DatabaseForm.reload()
739 Utils._ResetCalledSub(
"Form.Requery
")
742 TraceError(TRACEABORT, Err,
"Form.Requery
", Erl)
744 End Function
' Requery
746 REM -----------------------------------------------------------------------------------------------------------------------
747 Public Function setFocus() As Boolean
748 ' Execute setFocus method
749 Const cstThisSub =
"Form.setFocus
"
750 Utils._SetCalledSub(cstThisSub)
751 If _ErrorHandler() Then On Local Error Goto Error_Function
755 If .isVisible() = False Then .setVisible(True)
758 .setEnable(True)
' Added to try to bypass desynchro issue in Linux
759 .toFront()
' Added to force window change in Linux
764 Utils._ResetCalledSub(cstThisSub)
767 TraceError(TRACEABORT, Err, cstThisSub, Erl)
769 End Function
' setFocus V1.1
.0
771 REM -----------------------------------------------------------------------------------------------------------------------
772 Public Function setProperty(ByVal Optional psProperty As String, ByVal Optional pvValue As Variant) As Boolean
773 ' Return True if property setting OK
774 Utils._SetCalledSub(
"Form.setProperty
")
775 setProperty = _PropertySet(psProperty, pvValue)
776 Utils._ResetCalledSub(
"Form.setProperty
")
779 REM -----------------------------------------------------------------------------------------------------------------------
780 REM --- PRIVATE FUNCTIONS ---
781 REM -----------------------------------------------------------------------------------------------------------------------
783 REM -----------------------------------------------------------------------------------------------------------------------
784 Private Function _GetListener(ByVal psProperty As String) As String
785 ' Return the X...Listener corresponding with the property in argument
787 Select Case UCase(psProperty)
788 Case UCase(
"OnApproveCursorMove
")
789 _GetListener =
"XRowSetApproveListener
"
790 Case UCase(
"OnApproveParameter
")
791 _GetListener =
"XDatabaseParameterListener
"
792 Case UCase(
"OnApproveReset
"), UCase(
"OnResetted
")
793 _GetListener =
"XResetListener
"
794 Case UCase(
"OnApproveRowChange
")
795 _GetListener =
"XRowSetApproveListener
"
796 Case UCase(
"OnApproveSubmit
")
797 _GetListener =
"XSubmitListener
"
798 Case UCase(
"OnConfirmDelete
")
799 _GetListener =
"XConfirmDeleteListener
"
800 Case UCase(
"OnCursorMoved
"), UCase(
"OnRowChanged
")
801 _GetListener =
"XRowSetListener
"
802 Case UCase(
"OnErrorOccurred
")
803 _GetListener =
"XSQLErrorListener
"
804 Case UCase(
"OnLoaded
"), UCase(
"OnReloaded
"), UCase(
"OnReloading
"), UCase(
"OnUnloaded
"), UCase(
"OnUnloading
")
805 _GetListener =
"XLoadListener
"
808 End Function
' _GetListener V1.7
.0
810 REM -----------------------------------------------------------------------------------------------------------------------
811 Public Sub _Initialize(psName As String)
812 ' Set pointers to UNO objects
814 Dim oDoc As Object, oDatabase As Object
815 If _ErrorHandler() Then On Local Error Goto Trace_Error
817 _Shortcut =
"Forms!
" & Utils._Surround(psName)
818 Set oDoc = _A2B_.CurrentDocument()
819 If oDoc.DbConnect = DBCONNECTBASE Then _PersistentName = oDoc.Document.getFormDocuments().getByHierarchicalName(psName).PersistentName
821 Select Case oDoc.DbConnect
823 If Not IsNull(Component.CurrentController) Then
' A form opened then closed afterwards keeps a Component attribute
824 Set ContainerWindow = Component.CurrentController.Frame.ContainerWindow
825 Set FormsCollection = Component.getDrawPage.Forms
826 If FormsCollection.Count =
0 Then
827 Set DatabaseForm = Nothing
829 'Only first member of the collection can be reached with A2B
830 'Compliant with MSAccess which has
1 datasource by form, while LO might have many
831 _MainForms = FormsCollection.ElementNames()
832 Set DatabaseForm = FormsCollection.getByIndex(
0)
836 Set ContainerWindow = oDoc.Document.CurrentController.Frame.ContainerWindow
837 Set FormsCollection = oDoc.Document.getDrawPage.Forms
838 Set oDatabase = Application._CurrentDb(_DocEntry, _DbEntry)
840 Set DatabaseForm = .Form
841 If IsNull(.Connection) Then
842 Set .Connection = DatabaseForm.ActiveConnection
843 If Not IsNull(.Connection) Then
844 Set .MetaData = .Connection.MetaData
845 oDatabase._ReadOnly = .Connection.isReadOnly()
850 If IsNull(DatabaseForm) Then _OrderBy =
"" Else _OrderBy = DatabaseForm.Order
852 Set Component = Nothing
853 Set ContainerWindow = Nothing
854 Set DatabaseForm = Nothing
860 TraceError(TRACEABORT, Err,
"Form.Initialize
", Erl)
862 Trace_Internal_Error:
863 TraceError(TRACEABORT, ERRFORMNOTIDENTIFIED, Utils._CalledSub(),
0, , _Name)
865 End Sub
' _Initialize V1.1
.0
867 REM -----------------------------------------------------------------------------------------------------------------------
868 Private Function _PropertiesList() As Variant
871 _PropertiesList = Array(
"AllowAdditions
",
"AllowDeletions
",
"AllowEdits
",
"Bookmark
" _
872 ,
"Caption
",
"CurrentRecord
",
"Filter
",
"FilterOn
",
"Height
",
"IsLoaded
" _
873 ,
"Name
",
"ObjectType
",
"OnApproveCursorMove
",
"OnApproveParameter
" _
874 ,
"OnApproveReset
",
"OnApproveRowChange
",
"OnApproveSubmit
",
"OnConfirmDelete
" _
875 ,
"OnCursorMoved
",
"OnErrorOccurred
",
"OnLoaded
",
"OnReloaded
",
"OnReloading
" _
876 ,
"OnResetted
",
"OnRowChanged
",
"OnUnloaded
",
"OnUnloading
",
"OpenArgs
" _
877 ,
"OrderBy
",
"OrderByOn
",
"RecordSource
",
"Visible
",
"Width
" _
878 )
' Recordset removed
880 _PropertiesList = Array(
"IsLoaded
",
"Name
" _
884 End Function
' _PropertiesList
886 REM -----------------------------------------------------------------------------------------------------------------------
887 Private Function _PropertyGet(ByVal psProperty As String) As Variant
888 ' Return property value of the psProperty property name
890 If _ErrorHandler() Then On Local Error Goto Error_Function
891 Utils._SetCalledSub(
"Form.get
" & psProperty)
894 Dim oDatabase As Object, vBookmark As Variant
895 Dim i As Integer, oObject As Object
899 Select Case UCase(psProperty)
900 Case UCase(
"Name
"), UCase(
"IsLoaded
")
901 Case Else : If Not IsLoaded Then Goto Trace_Error_Form
904 Select Case UCase(psProperty)
905 Case UCase(
"AllowAdditions
")
906 If IsNull(DatabaseForm) Then _PropertyGet = False Else _PropertyGet = DatabaseForm.AllowInserts
907 Case UCase(
"AllowDeletions
")
908 If IsNull(DatabaseForm) Then _PropertyGet = False Else _PropertyGet = DatabaseForm.AllowDeletes
909 Case UCase(
"AllowEdits
")
910 If IsNull(DatabaseForm) Then _PropertyGet = False Else _PropertyGet = DatabaseForm.AllowUpdates
911 Case UCase(
"Bookmark
")
912 If IsNull(DatabaseForm) Then
915 On Local Error Resume Next
' Disable error handler because bookmarking does not always react well in events ...
916 If DatabaseForm.IsBookmarkable Then vBookmark = DatabaseForm.getBookmark() Else vBookmark = Nothing
917 If _ErrorHandler() Then On Local Error Goto Error_Function Else On Local Error Goto
0
918 If IsNull(vBookmark) Then Goto Trace_Error
919 _PropertyGet = vBookmark
921 Case UCase(
"Caption
")
922 Set odatabase = Application._CurrentDb(_DocEntry, _DbEntry)
923 Select Case oDatabase._DbConnect
924 Case DBCONNECTFORM : _PropertyGet = oDatabase.Document.CurrentController.Frame.Title
925 Case DBCONNECTBASE : _PropertyGet = Component.CurrentController.Frame.Title
927 Case UCase(
"CurrentRecord
")
928 If IsNull(DatabaseForm) Then _PropertyGet =
0 Else _PropertyGet = DatabaseForm.Row
929 Case UCase(
"Filter
")
930 If IsNull(DatabaseForm) Then _PropertyGet =
"" Else _PropertyGet = DatabaseForm.Filter
931 Case UCase(
"FilterOn
")
932 If IsNull(DatabaseForm) Then _PropertyGet = False Else _PropertyGet = DatabaseForm.ApplyFilter
933 Case UCase(
"Height
")
934 _PropertyGet = ContainerWindow.getPosSize().Height
935 Case UCase(
"IsLoaded
")
' Only for indirect access from property object
936 _PropertyGet = IsLoaded
937 Case UCase(
"Name
")
939 Case UCase(
"ObjectType
")
941 Case UCase(
"OnApproveCursorMove
"), UCase(
"OnApproveParameter
"), UCase(
"OnApproveReset
"), UCase(
"OnApproveRowChange
") _
942 , UCase(
"OnApproveSubmit
"), UCase(
"OnConfirmDelete
"), UCase(
"OnCursorMoved
"), UCase(
"OnErrorOccurred
") _
943 , UCase(
"OnLoaded
"), UCase(
"OnReloaded
"), UCase(
"OnReloading
"), UCase(
"OnResetted
"), UCase(
"OnRowChanged
") _
944 , UCase(
"OnUnloaded
"), UCase(
"OnUnloading
")
945 If IsNull(DatabaseForm) Then _PropertyGet =
"" Else _PropertyGet = Utils._GetEventScriptCode(DatabaseForm, psProperty, _Name, True)
946 Case UCase(
"OpenArgs
")
947 _PropertyGet = _OpenArgs
948 Case UCase(
"OrderBy
")
949 _PropertyGet = _OrderBy
950 Case UCase(
"OrderByOn
")
951 If IsNull(DatabaseForm) Then _PropertyGet = False Else _PropertyGet = ( DatabaseForm.Order
<> "" )
952 Case UCase(
"Recordset
")
953 If IsNull(DatabaseForm) Then Goto Trace_Error
954 If DatabaseForm.Command =
"" Then Goto Trace_Error
' No underlying data ??
955 Set oObject = New Recordset
957 oObject._This = oObject
958 oObject._CommandType = .CommandType
959 oObject._Command = .Command
960 oObject._ParentName = _Name
961 oObject._ParentType = _Type
962 Set oDatabase = Application._CurrentDb(_DocEntry, _DbEntry)
963 Set oObject._ParentDatabase = oDatabase
964 Set oObject._ParentDatabase.Connection = .ActiveConnection
965 oObject._ForwardOnly = ( .ResultSetType = com.sun.star.sdbc.ResultSetType.FORWARD_ONLY )
966 oObject._PassThrough = ( .EscapeProcessing = False )
967 oObject._ReadOnly = ( .ResultSetConcurrency = com.sun.star.sdbc.ResultSetConcurrency.READ_ONLY )
968 Call oObject._Initialize()
971 .RecordsetMax = .RecordsetMax +
1
972 oObject._Name = Format(.RecordsetMax,
"0000000")
973 .RecordsetsColl.Add(oObject, UCase(oObject._Name))
975 If Not ( oObject._BOF And oObject._EOF ) Then oObject.MoveFirst()
' Do nothing if resultset empty
976 Set _PropertyGet = oObject
977 Case UCase(
"RecordSource
")
978 If IsNull(DatabaseForm) Then _PropertyGet =
"" Else _PropertyGet = DatabaseForm.Command
979 Case UCase(
"Visible
")
980 _PropertyGet = ContainerWindow.IsVisible()
981 Case UCase(
"Width
")
982 _PropertyGet = ContainerWindow.getPosSize().Width
988 Utils._ResetCalledSub(
"Form.get
" & psProperty)
991 TraceError(TRACEWARNING, ERRPROPERTY, Utils._CalledSub(),
0,
1, psProperty)
995 TraceError(TRACEFATAL, ERRFORMNOTOPEN, Utils._CalledSub(),
0,
1, _Name)
999 TraceError(TRACEABORT, Err,
"Form._PropertyGet
", Erl)
1000 _PropertyGet = EMPTY
1002 End Function
' _PropertyGet
1004 REM -----------------------------------------------------------------------------------------------------------------------
1005 Private Function _PropertySet(ByVal psProperty As String, ByVal pvValue As Variant) As Boolean
1007 Utils._SetCalledSub(
"Form.set
" & psProperty)
1008 If _ErrorHandler() Then On Local Error Goto Error_Function
1012 Dim iArgNr As Integer, i As Integer
1013 Dim oDatabase As Object
1015 If _Isleft(_A2B_.CalledSub,
"Form.
") Then iArgNr =
1 Else iArgNr =
2
1016 If Not IsLoaded Then Goto Trace_Error_Form
1018 Select Case UCase(psProperty)
1019 Case UCase(
"AllowAdditions
")
1020 If Not Utils._CheckArgument(pvValue, iArgNr, vbBoolean, , False) Then Goto Trace_Error_Value
1021 If IsNull(DatabaseForm) Then Goto Trace_Error
1022 DatabaseForm.AllowInserts = pvValue
1023 DatabaseForm.reload()
1024 Case UCase(
"AllowDeletions
")
1025 If Not Utils._CheckArgument(pvValue,iArgNr, vbBoolean, , False) Then Goto Trace_Error_Value
1026 If IsNull(DatabaseForm) Then Goto Trace_Error
1027 DatabaseForm.AllowDeletes = pvValue
1028 DatabaseForm.reload()
1029 Case UCase(
"AllowEdits
")
1030 If Not Utils._CheckArgument(pvValue, iArgNr, vbBoolean, , False) Then Goto Trace_Error_Value
1031 If IsNull(DatabaseForm) Then Goto Trace_Error
1032 DatabaseForm.AllowUpdates = pvValue
1033 DatabaseForm.reload()
1034 Case UCase(
"Bookmark
")
1035 If Not Utils._CheckArgument(pvValue, iArgNr, Utils._AddNumeric(vbObject), , False) Then Goto Trace_Error_Value
1036 If IsNull(pvValue) Then Goto Trace_Error_Value
1037 If IsNull(DatabaseForm) Then Goto Trace_Error
1038 DatabaseForm.MoveToBookmark(pvValue)
1039 Case UCase(
"Caption
")
1040 If Not Utils._CheckArgument(pvValue, iArgNr, vbString, , False) Then Goto Trace_Error_Value
1041 Set oDatabase = Application._CurrentDb(_DocEntry, _DbEntry)
1042 Select Case oDatabase._DbConnect
1043 Case DBCONNECTFORM : oDatabase.Document.CurrentController.Frame.Title = pvValue
1044 Case DBCONNECTBASE : Component.CurrentController.Frame.Title = pvValue
1046 Case UCase(
"CurrentRecord
")
1047 If Not Utils._CheckArgument(pvValue, iArgNr, Utils._AddNumeric(), , False) Then Goto Trace_Error_Value
1048 If pvValue
< 1 Then Goto Trace_Error_Value
1049 If IsNull(DatabaseForm) Then Goto Trace_Error
1050 DatabaseForm.absolute(pvValue)
1051 Case UCase(
"Filter
")
1052 If Not Utils._CheckArgument(pvValue, iArgNr, vbString, , False) Then Goto Trace_Error_Value
1053 If IsNull(DatabaseForm) Then Goto Trace_Error
1054 DatabaseForm.Filter = Application._CurrentDb(_DocEntry, _DbEntry)._ReplaceSquareBrackets(pvValue)
1055 Case UCase(
"FilterOn
")
1056 If Not Utils._CheckArgument(pvValue, iArgNr, vbBoolean, , False) Then Goto Trace_Error_Value
1057 If IsNull(DatabaseForm) Then Goto Trace_Error
1058 DatabaseForm.ApplyFilter = pvValue
1059 DatabaseForm.reload()
1060 Case UCase(
"Height
")
1061 If Not Utils._CheckArgument(pvValue, iArgNr, Utils._AddNumeric(), , False) Then Goto Trace_Error_Value
1062 If Utils._hasUNOProperty(ContainerWindow,
"IsMaximized
") Then
' Ignored when
<= OO3.2
1063 ContainerWindow.IsMaximized = False
1064 ContainerWindow.IsMinimized = False
1066 ContainerWindow.setPosSize(
0,
0,
0, pvValue, com.sun.star.awt.PosSize.HEIGHT)
1067 Case UCase(
"OnApproveCursorMove
"), UCase(
"OnApproveParameter
"), UCase(
"OnApproveReset
"), UCase(
"OnApproveRowChange
") _
1068 , UCase(
"OnApproveSubmit
"), UCase(
"OnConfirmDelete
"), UCase(
"OnCursorMoved
"), UCase(
"OnErrorOccurred
") _
1069 , UCase(
"OnLoaded
"), UCase(
"OnReloaded
"), UCase(
"OnReloading
"), UCase(
"OnResetted
"), UCase(
"OnRowChanged
") _
1070 , UCase(
"OnUnloaded
"), UCase(
"OnUnloading
")
1071 If Not Utils._CheckArgument(pvValue, iArgNr, vbString, , False) Then Goto Trace_Error_Value
1072 If IsNull(DatabaseForm) Then Goto Trace_Error
1073 If Not Utils._RegisterEventScript(DatabaseForm _
1075 , _GetListener(psProperty) _
1076 , pvValue, _Name, True _
1077 ) Then GoTo Trace_Error
1078 Case UCase(
"OrderBy
")
1079 If Not Utils._CheckArgument(pvValue, iArgNr, vbString, , False) Then Goto Trace_Error_Value
1080 If IsNull(DatabaseForm) Then Goto Trace_Error
1081 _OrderBy = Application._CurrentDb(_DocEntry, _DbEntry)._ReplaceSquareBrackets(pvValue)
1082 Case UCase(
"OrderByOn
")
1083 If Not Utils._CheckArgument(pvValue, iArgNr, vbBoolean, , False) Then Goto Trace_Error_Value
1084 If IsNull(DatabaseForm) Then Goto Trace_Error
1085 If pvValue Then DatabaseForm.Order = _OrderBy Else DatabaseForm.Order =
""
1086 DatabaseForm.reload()
1087 Case UCase(
"RecordSource
")
1088 If Not Utils._CheckArgument(pvValue, iArgNr, vbString, , False) Then Goto Trace_Error_Value
1089 If IsNull(DatabaseForm) Then Goto Trace_Error
1090 DatabaseForm.Command = Application._CurrentDb(_DocEntry, _DbEntry)._ReplaceSquareBrackets(pvValue)
1091 DatabaseForm.CommandType = com.sun.star.sdb.CommandType.COMMAND
1092 DatabaseForm.Filter =
""
1093 DatabaseForm.reload()
1094 Case UCase(
"Visible
")
1095 If Not Utils._CheckArgument(pvValue, iArgNr, vbBoolean, , False) Then Goto Trace_Error_Value
1096 ContainerWindow.setVisible(pvValue)
1097 Case UCase(
"Width
")
1098 If Not Utils._CheckArgument(pvValue, iArgNr, Utils._AddNumeric()) Then Goto Trace_Error_Value
1099 If Utils._hasUNOProperty(ContainerWindow,
"IsMaximized
") Then
' Ignored when
<= OO3.2
1100 ContainerWindow.IsMaximized = False
1101 ContainerWindow.IsMinimized = False
1103 ContainerWindow.setPosSize(
0,
0, pvValue,
0, com.sun.star.awt.PosSize.WIDTH)
1109 Utils._ResetCalledSub(
"Form.set
" & psProperty)
1112 TraceError(TRACEFATAL, ERRFORMNOTOPEN, Utils._CalledSub(),
0,
1, _Name)
1113 _PropertySet = False
1116 TraceError(TRACEFATAL, ERRPROPERTY, Utils._CalledSub(),
0,
1, psProperty)
1117 _PropertySet = False
1120 TraceError(TRACEFATAL, ERRPROPERTYVALUE, Utils._CalledSub(),
0,
1, Array(pvValue, psProperty))
1121 _PropertySet = False
1124 TraceError(TRACEABORT, Err,
"Form._PropertySet
", Erl)
1125 _PropertySet = False
1127 End Function
' _PropertySet