自定义 Apache OpenOffice Basic 宏和库
Apache OpenOffice Basic 是一种编程语言,可用于在 Apache OpenOffice 中自动执行任务。
Apache OpenOffice Basic 宏存储在模块中,而这些模块又存储在库中。
库还作为在 Apache OpenOffice Basic 中创建的对话框的容器。
您可以将 Basic 库存储在用户可访问的任何目录中。
![]() |
可以使用 Apache OpenOffice 扩展来打包和部署 Basic 库。《Apache OpenOffice 开发者指南》对扩展进行了详细介绍。 |
关于 Apache OpenOffice Basic 库和模块
默认 Apache OpenOffice Basic 库位于 install-dir/share/basic 目录中。库包含以下文件:
- script.xlb
- 包含库中的模块名称的 XML 文件。
- dialog.xlb
- 包含库中的对话框名称的 XML 文件。
- *.xba
- 存储单个 Apache OpenOffice Basic 模块的 Apache OpenOffice Basic 源代码的 XML 文件。该文件的名称与模块名称相对应。
- *.xdl
- 存储 Apache OpenOffice Basic 对话框的对话框元素的 XML 文件。该文件的名称与对话框名称相对应。
- *.pba
- 使用密码保护(即,对源代码进行加密)的 Apache OpenOffice Basic 模块。该文件的名称与模块名称相对应。
关于 Apache OpenOffice Basic 配置文件
script.xlc 和 dialog.xlc 配置文件列出了 Apache OpenOffice Basic 库和对话框的位置。这些文件位于 install-dir/user/basic/ 目录中,该目录还包含默认标准 Apache OpenOffice Basic 库以及用户定义的库。
基于 XML 的 script.xlc 文件包含 Apache OpenOffice 可用的所有 Basic 库列表。可以使用以下标记:
- library:name
- 指定 Apache OpenOffice Basic 库的名称。
- xlink:href
- 指定该库的 script.xlb 文件的 URL。该 URL 必须以 file:/// 表示法开头。
- xlink:type
- 此标记是 xlink:href 标记所必需的,必须将其设置为 simple。
- library:link
- 指定条目所链接到的库是否位于默认库位置。Apache OpenOffice Basic 库的默认位置为 install-dir/user/basic。如果仅使用库的默认位置,请将此标记的值设置为 false。对于所有其他库,请将此标记的值设置为 true。
- library:readonly
- 指定库是否为只读。对于只读访问,请将此标记的值设置为 true。
以下 XML 代码用于 script.xlc 配置文件
(Apache OpenOffice Basic 库的配置文件)。该文件与 dialog.xlc
文件的唯一差异是,xlink:href 标记指向库的 script.xlb 文件, 而不是 dialog.xlb 文件。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE library:libraries PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "libraries.dtd"> <library:libraries xmlns:library="http://openoffice.org/2000/library" xmlns:xlink="http://www.w3.org/1999/xlink"> <library:library library:name="Standard" xlink:href="file:///.../user/basic/Standard/script.xlb/" xlink:type="simple" library:link="false"/> <library:library library:name="FormWizard" xlink:href="file:///.../share/basic/FormWizard/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/> </library:libraries>
样例 Apache OpenOffice Basic 配置文件
分发 Apache OpenOffice Basic 库
可以为现有 Apache OpenOffice 安装提供自定义 Apache OpenOffice Basic 库,或者仅为新安装提供这些库。
![]() |
script.xlc 和 dialog.xlc 配置文件均位于以下目录中:
|
为网络上的所有用户提供自定义 Apache OpenOffice Basic 库
可以使用 Apache OpenOffice 创建自定义库以及在该库中创建宏。
-
以 root 用户身份,将自定义库从创建该库的用户安装复制到 Apache OpenOffice 服务器安装中。
cp -r install-dir/user/basic/custom library install-dir/share/basic/ -
在用户安装的 script.xlc 配置文件中,添加一个指向库的 script.xlb 配置文件的链接。
请使用以下语法来添加链接:<library:library library:name="Library Name" xlink:href="$(USER)/basic/Library Name/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
-
在用户安装的 dialog.xlc 配置文件中,添加一个指向库的 script.xlb 配置文件的链接。
请使用以下语法来添加链接:<library:library library:name="Library Name" xlink:href="$(USER)/basic/Library Name/dialog.xlb/" xlink:type="simple" library:link="false"/>
- 在工作站上重新启动 Apache OpenOffice。
为单个用户提供自定义 Apache OpenOffice Basic 库
-
将自定义库从创建该库的用户安装复制到要部署该库的用户安装中。
- 在 Solaris 和 Linux 平台上,成为 root 用户,然后复制该库。
cp -r ''install-dir''/user/basic/custom library ''install-dir''/user/basic/
- 在 Windows 中,成为具有管理员权限的用户,然后复制该库。
该库的文件名路径为 C:\Documents and Settings\user-id\Application Data\install-dir\user\basic\custom library
-
在用户安装的 script.xlc 配置文件中,添加一个指向库的 script.xlb 配置文件的链接。
请使用以下语法来添加链接:<library:library library:name="Library Name" xlink:href="$(USER)/basic/Library Name/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
-
在用户安装的 dialog.xlc 配置文件中,添加一个指向库的 script.xlb 配置文件的链接。
请使用以下语法来添加链接:<library:library library:name="Library Name" xlink:href="$(USER)/basic/Library Name/dialog.xlb/" xlink:type="simple" library:link="false"/>
- 重新启动 Apache OpenOffice。
使用宏安装自定义 Apache OpenOffice Basic 库
可以创建一个宏,以便安装 Apache OpenOffice 文档中的 Apache OpenOffice Basic 库。
- 在 Writer 中,在新文档中创建一个自定义 Apache OpenOffice Basic 库。
- 保存该文档。
- 创建一个安装宏。
- 选择工具 → 宏 → 管理宏 → Apache OpenOffice Basic。将显示 Apache OpenOffice Basic 宏对话框。
- 在宏的来源列表中,选择 Writer 文档。
- 在宏名称框中,键入安装宏的名称。
- 单击新建按钮。将显示 BASIC IDE 窗口。
- 键入以下代码:
- 将 SrcLibraryName 和 DestLibraryName 变量替换为库名称。
- 关闭 BASIC IDE 窗口。
- 在文档中添加一个按钮。
- 在'窗体控件工具栏中,'单击按钮图标。
- 在文档中通过拖动来绘制按钮。
- 为按钮事件指定安装宏。
- 右键单击新按钮,然后选择控件。
- 单击事件选项卡。
- 单击按钮事件旁边的省略号 ... 按钮,例如,按住鼠标键事件。
- 在指定操作对话框中,单击宏按钮。将显示宏选择器对话框。
- 在库列表中,选择包含该安装宏的库。
- 在宏名称列表中,选择该安装宏。
- 单击确定。
- 在指定宏对话框中,单击确定按钮。
- 保存该文档。
Sub AddBasicLibrary Dim SourceLibraryName As String, DestLibraryName As String Dim oSrcLib As Object, oDestLib As Object, iCounter As Integer Dim oLib As Object, oGlobalLib As Object ' set these 2 variables to your lib name SrcLibraryName = "TextLib" ' The name of the library that contains the modules DestLibraryName = "NewLib" ' This library will be created and is the ' destination for the modules from the source document. oLib = BasicLibraries ' For Basic libaries oGlobalLib = GlobalScope.BasicLibraries For iLib = 1 To 2 If oGlobalLib.hasByName( DestLibraryName ) = False Then oGlobalLib.createLibrary( DestLibraryName ) End If If oLib.hasByName( SrcLibraryName ) Then oLib.loadLibrary( SrcLibraryName ) oSrcLib = oLib.getByName( SrcLibraryName ) sSrcModules = oSrcLib.getElementNames() iCounter = lBound( sSrcModules() ) while( iCounter <= uBound( sSrcModules() ) ) oDestLib = oGlobalLib.getByName(DestLibraryName) If oDestLib.hasByName( sSrcModules(iCounter) ) = False Then oDestLib.insertByName( sSrcModules(iCounter),_ oSrcLib.getByName( sSrcModules(iCounter) ) ) End If iCounter = iCounter + 1 wend End If oLib = DialogLibraries ' The same for the Dialog libraries oGlobalLib = GlobalScope.DialogLibraries Next iLib End Sub
Content on this page is licensed under the Public Documentation License (PDL). |