我正试图从表单上的textfield获取价值。
sub Test(oEv)
oForm = oEv.Source.Model.Parent
textBox = oForm.getByName("Description")
MsgBox textBox.Text
end sub
在“textBox = oForm.getByName”行上有一个异常:“Type:com.sun.star.container.NoSuchElementException”。我在同一表单上有一个名为“Description”的文本字段,其中是我按下以运行此宏的按钮。这有什么不对?
答案 0 :(得分:2)
检查名称是否相同,而不是description
。
另外,使用Form Navigator确定控件是否在层次结构中的表单下。
您是否尝试使用MRI或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。