Libreoffice Base 宏 - 如何在表单上制作 visible/hide 控件?
Libreoffice Base macro - How to make visible/hide a control on a form?
我创建了一个包含 2 个组合框的数据库表单,Combo1
和 Combo2
。
Combo2
可见性取决于 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
我创建了一个包含 2 个组合框的数据库表单,Combo1
和 Combo2
。
Combo2
可见性取决于 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