【问题标题】:Libreoffice Base macro - How to make visible/hide a control on a form?Libreoffice Base 宏 - 如何使表单上的控件可见/隐藏?
【发布时间】:2020-03-05 18:10:35
【问题描述】:

我创建了一个带有 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 的两本主要书籍进行字符串搜索(“OpenOffice.org 的有用宏信息”和“OpenOffice.org 宏解释 (OOME)” ) 但在尝试了大量的 sn-ps 之后,我一无所获。

libreoffice macro - toggle enablevisible on a textfield 也一样

任何指针?

【问题讨论】:

  • 如果您对 Basic 感到不舒服,请尝试 Python,这是一种流行的 LibreOffice 宏语言。 APSO 帮助您开始。
  • 无法回答您的具体问题,但如果您打算使用基本基本版,我认为如果您还没有使用,我认为您真的需要使用它:extensions.libreoffice.org/extensions/… 我花了花了一点时间来学习使用它,我什至重写了它的手册,但我发现它很有帮助。这是最好的手册:github.com/hanya/MRI/wiki

标签: libreoffice libreoffice-basic libreoffice-base


【解决方案1】:

这是一个有效的 sn-p(不保证是最简单的,因为我对宏的经验是一天之久):

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    相关资源
    最近更新 更多