diff options
author | Jean-Pierre Ledure <jp@ledure.be> | 2021-07-13 16:30:16 +0200 |
---|---|---|
committer | Jean-Pierre Ledure <jp@ledure.be> | 2021-07-14 10:45:15 +0200 |
commit | 2366c24ffe564643ca616d848a477ba382e9fe50 (patch) | |
tree | 3b9f30f09d41db8a8a6b089e13375c30665ce618 | |
parent | fe28633ee6edc5986220c934dfb04aa7b0d065ad (diff) |
ScriptForge - (SF_Base) new CloseFormDocument() method
The closure of a form document is available from
the SF_Form service.
A form document is since recent commits associated with
actions like PrintOut() that do not require to access
its internal forms.
As a consequence, the closure of a form document from
the SF_Base service gains in relevance.
Hence the actual commit.
Change-Id: I9d4af078e6631d18c2d92c17249be6025ac9dfdd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118857
Tested-by: Jean-Pierre Ledure <jp@ledure.be>
Tested-by: Jenkins
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
-rw-r--r-- | wizards/source/scriptforge/python/scriptforge.py | 3 | ||||
-rw-r--r-- | wizards/source/sfdocuments/SF_Base.xba | 43 |
2 files changed, 46 insertions, 0 deletions
diff --git a/wizards/source/scriptforge/python/scriptforge.py b/wizards/source/scriptforge/python/scriptforge.py index 5e3b2c6c7a8c..16dbca2b4fd2 100644 --- a/wizards/source/scriptforge/python/scriptforge.py +++ b/wizards/source/scriptforge/python/scriptforge.py @@ -1794,6 +1794,9 @@ class SFDocuments: def CloseDocument(self, saveask = True): return self.ExecMethod(self.vbMethod, 'CloseDocument', saveask) + def CloseFormDocument(self, formdocument): + return self.ExecMethod(self.vbMethod, 'CloseFormDocument', formdocument) + def FormDocuments(self): return self.ExecMethod(self.vbMethod + self.flgArrayRet, 'FormDocuments') diff --git a/wizards/source/sfdocuments/SF_Base.xba b/wizards/source/sfdocuments/SF_Base.xba index 52fc0fd768c2..ae2a23e9f0d3 100644 --- a/wizards/source/sfdocuments/SF_Base.xba +++ b/wizards/source/sfdocuments/SF_Base.xba @@ -136,6 +136,49 @@ Catch: End Function ' SFDocuments.SF_Base.CloseDocument REM ----------------------------------------------------------------------------- +Public Function CloseFormDocument(Optional ByVal FormDocument As Variant) As Boolean +''' Close the given form document +''' Nothing happens if the form document is not open +''' Args: +''' FormDocument: a valid document form name as a case-sensitive string +''' Returns: +''' True if closure is successful +''' Example: +''' oDoc.CloseFormDocument("Folder1/myFormDocument") + +Dim bClose As Boolean ' Return value +Dim oMainForm As Object ' com.sun.star.comp.sdb.Content +Dim vFormNames As Variant ' Array of all document form names present in the document + +Const cstThisSub = "SFDocuments.Base.CloseFormDocument" +Const cstSubArgs = "FormDocument" + + If ScriptForge.SF_Utils._ErrorHandling() Then On Local Error GoTo Catch + bClose = False + +Check: + If ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs) Then + If Not _IsStillAlive() Then GoTo Finally + ' Build list of available FormDocuments recursively with _CollectFormDocuments + If IsNull(_FormDocuments) Then Set _FormDocuments = _Component.getFormDocuments() + vFormNames = Split(_CollectFormDocuments(_FormDocuments), cstToken) + If Not ScriptForge.SF_Utils._Validate(FormDocument, "FormDocument", V_STRING, vFormNames) Then GoTo Finally + End If + If Not IsLoaded(FormDocument) Then GoTo Finally + +Try: + Set oMainForm = _FormDocuments.getByHierarchicalName(FormDocument) + bClose = oMainForm.close() + +Finally: + CloseFormDocument = bClose + ScriptForge.SF_Utils._ExitFunction(cstThisSub) + Exit Function +Catch: + GoTo Finally +End Function ' SFDocuments.SF_Base.CloseFormDocument + +REM ----------------------------------------------------------------------------- Public Function FormDocuments() As Variant ''' Return the list of the FormDocuments contained in the Base document ''' Args: |