LibreOffice的基本摆脱表单元素(LibreOffice Basic get Element

2019-09-29 07:35发布

我试图从表单上的文本框获得价值。

sub Test(oEv)

oForm = oEv.Source.Model.Parent
textBox = oForm.getByName("Description")
MsgBox textBox.Text

end sub

有一个例外:“类型:com.sun.star.container.NoSuchElementException”就行“的textBox = oForm.getByName”。 我有相同的形式,其中是按钮,我按运行此宏的名称“描述”文本字段。 这里有什么问题?

Answer 1:

检查名称相同的情况下,没有description

此外,使用表单导航器 ,以确定是否控制在层次结构的形式下。

你是否尝试过使用一个内省工具,如MRI或XrayTool查看的属性oForm ? 借助该工具,展开形式,看看它是否包含Description控制。

经常在基地,这是更好地应对形式的记录,而不是阅读的控件。 下面是一些示例代码:

Sub ButtonClickHandler(oEvent as Object)
    'com.sun.star.comp.forms.ODatabaseForm
    oForm = oEvent.Source.Model.Parent
    lDescriptionCol = oForm.findColumn("DESCRIPTION")  ' from underlying query or table
    Print(oForm.getString(lDescriptionCol))
    BasicLibraries.LoadLibrary("XrayTool")
    xray(oForm)
End Sub

欲了解更多的想法,看到https://forum.openoffice.org/en/forum/viewtopic.php?f=39&t=38725 。



文章来源: LibreOffice Basic get Elements from form