Libreoffice Base 宏 - 如何在表单上制作 visible/hide 控件?

Libreoffice Base macro - How to make visible/hide a control on a form?

我创建了一个包含 2 个组合框的数据库表单,Combo1Combo2Combo2 可见性取决于 Combo1 状态:Combo1 选中,Combo2 可见; Combo1 未选中,Combo2 隐藏。

我希望找到类似 Combo2.setVisible(Combo1.isVisible()) 的东西,但我太乐观了。

这是我一直在玩的宏:

Sub MyMacro(oEvent as Object)
    msgbox(oEvent.Source.getState())   rem returns Checked/Unchecked status of Combo1
    msgbox(oEvent.source.model.Name)   rem Name of the Event generator (Combo1)
End Sub
cb2 = ThisComponent.Drawpage.Forms.getByName("MainForm").getByName("Combo2")
msgbox(cb2.Name)

打印正确Combo2,所以我假设我有一个正确的参考...

现在呢?

今天是我玩 Libreoffice Base(及其错误)的第一天,这只是我想为明天的演示添加的一些好东西。我从来没有在 Microsoft 和 Libreoffice 套件中使用过宏,所以我移动得非常慢。

我上次使用 BASIC 大概是在 1990 年左右。

我浏览了一些在线教程(通常基于 Libreoffice Calc 单元格),对 Andrew Pitonyak("Useful Macro Information For OpenOffice.org" 和 "OpenOffice.org Macros Explained (OOME)")的两本主要书籍进行了字符串搜索,但在尝试了大量片段之后我无处可去。

也一样

有指示吗?

这是一个有效的片段(不能保证是最直接的,因为我使用宏的经验只有一天):

Sub SetVisibility(oEvent as Object)
    cb2 = ThisComponent.Drawpage.Forms.getByName("MainForm").getByName("Combo2")
    cb2.enableVisible = oEvent.Source.getState()   
    rem the action is activated by Combo1, the event source
End Sub