LibreOffice Basic 从表单中获取元素
LibreOffice Basic get Elements from form
我正在尝试从表单上的文本字段中获取值。
sub Test(oEv)
oForm = oEv.Source.Model.Parent
textBox = oForm.getByName("Description")
MsgBox textBox.Text
end sub
存在异常:"Type: com.sun.star.container.NoSuchElementException" 行 "textBox = oForm.getByName"。我在同一个表单上有一个名为 "Description" 的文本字段,我按下的按钮在哪里 运行 这个宏。这里有什么问题?
检查名称大小写是否相同,而不是description
。
此外,使用 Form Navigator 来确定控件是否在层次结构中的窗体下。
您是否尝试过使用内省工具(例如 MRI or XrayTool)来查看 oForm
的属性?使用该工具,展开窗体以查看它是否包含 Description
控件。
通常在 Base 中,最好将表单作为记录集来处理,而不是读取控件。这是一些示例代码:
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。
我正在尝试从表单上的文本字段中获取值。
sub Test(oEv)
oForm = oEv.Source.Model.Parent
textBox = oForm.getByName("Description")
MsgBox textBox.Text
end sub
存在异常:"Type: com.sun.star.container.NoSuchElementException" 行 "textBox = oForm.getByName"。我在同一个表单上有一个名为 "Description" 的文本字段,我按下的按钮在哪里 运行 这个宏。这里有什么问题?
检查名称大小写是否相同,而不是description
。
此外,使用 Form Navigator 来确定控件是否在层次结构中的窗体下。
您是否尝试过使用内省工具(例如 MRI or XrayTool)来查看 oForm
的属性?使用该工具,展开窗体以查看它是否包含 Description
控件。
通常在 Base 中,最好将表单作为记录集来处理,而不是读取控件。这是一些示例代码:
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。