[Libreoffice-commits] core.git: wizards/source
Jean-Pierre Ledure (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jul 14 08:45:48 UTC 2021
wizards/source/scriptforge/python/scriptforge.py | 3 +
wizards/source/sfdocuments/SF_Base.xba | 43 +++++++++++++++++++++++
2 files changed, 46 insertions(+)
New commits:
commit 2366c24ffe564643ca616d848a477ba382e9fe50
Author: Jean-Pierre Ledure <jp at ledure.be>
AuthorDate: Tue Jul 13 16:30:16 2021 +0200
Commit: Jean-Pierre Ledure <jp at ledure.be>
CommitDate: Wed Jul 14 10:45:15 2021 +0200
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 at ledure.be>
Tested-by: Jenkins
Reviewed-by: Jean-Pierre Ledure <jp at ledure.be>
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
@@ -135,6 +135,49 @@ Catch:
GoTo Finally
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
More information about the Libreoffice-commits
mailing list