【问题标题】:libreoffice base macro parametric open close get current form namelibreoffice 基础宏参数打开关闭获取当前表单名称
【发布时间】:2015-04-14 07:53:43
【问题描述】:

libreoffice 基础 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()

返回 var not set 的错误

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

【问题讨论】:

    标签: macros libreoffice


    【解决方案1】:

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

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

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

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

    将“MainForm”替换为您的实际表单名称 - 这里的表单表示一组控件。您可以通过打开“表单导航器”窗口来查看表单文档内的表单和子表单的名称。确保工具栏表单设计可见; Form Navigator 图标在左数或上数第六个,看起来像一个矩形,右上角有一个指南针。

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

    ThisComponent.close

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-30
      • 1970-01-01
      • 2014-10-16
      • 2013-06-22
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多