libreoffice base宏参数打开关闭获取当前表单名称

libreoffice base macro parametric open close get current form name

libreoffice Base 4.3.3.2 按名称打开一个表单页面,然后像这样关闭当前页面表单:

oForm = ThisDatabaseDocument.FormDocuments.getByName("SecondForm") 
oForm.Open 
oFormC = ThisDatabaseDocument.FormDocuments.getByName("CurrentForm") 
oFormC.Close 

但是有没有办法不用手写他的名字就关闭 oFormC?

正在尝试:

    oFormC = Event.Source.Model.Parent
    oFormC  = ThisDatabaseDocument.FormDocuments.getByName(Event.Source.Model.Parent) 
oFormC = getParent()

return var 未设置错误

在文档中找不到任何帮助。

LibreOffice/OpenOffice 中的术语 'form' 令人困惑,因为它既指代整个文档(通常是 Writer 文件),也指代该文档中的每组表单控件。所以每个表单文档里面可以有很多表单(就是一组控件),表单(一组控件)可以有子表单。

此代码获取表单文档(嵌入在 Base 文件中的 Writer 文件):

oDoc = ThisDatabaseDocument.FormDocuments.getByName("SecondForm")

此代码获取一组控件的表单,其中包含触发宏的控件:oForm = Event.Source.Model.Parent 在触发宏的表单文档中获取一组控件的另一种方法:oForm = ThisComponent.drawpage.forms.MainForm

将 "MainForm" 替换为您实际的表单名称 - 此处的表单表示一组控件。您可以通过打开表单导航器 window 查看表单文档中的表单和子表单的名称。确保工具栏 Form Design 可见; Form Navigator 图标在左数或上数第六个,看起来像一个矩形,右上角有一个圆规。

你可能已经从前面的代码中猜到如何在触发宏时关闭处于活动状态的文档:

ThisComponent.close