Difference between revisions of "ZH/Documentation/Administration Guide/Using Custom Macros and Libraries"
(New page: {{Documentation/AdminGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |ShowNextPage=block |PrevPage=Documentation/Administration Guide/Windows |NextPage=Documentation/Administration Gui...) |
|||
(6 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | {{Documentation/AdminGuideTOC/v2 | + | {{ZH/Documentation/AdminGuideTOC/v2 |
|ShowPrevNext=block | |ShowPrevNext=block | ||
|ShowPrevPage=block | |ShowPrevPage=block | ||
|ShowNextPage=block | |ShowNextPage=block | ||
− | |PrevPage=Documentation/Administration Guide/Windows | + | |PrevPage=ZH/Documentation/Administration Guide/Windows |
− | |NextPage=Documentation/Administration Guide/Using Package Manager | + | |NextPage=ZH/Documentation/Administration Guide/Using Package Manager |
}} | }} | ||
{{DISPLAYTITLE:自定义 {{OOo}} Basic 宏和库}} | {{DISPLAYTITLE:自定义 {{OOo}} Basic 宏和库}} | ||
Line 13: | Line 13: | ||
您可以将 Basic 库存储在用户可访问的任何目录中。 | 您可以将 Basic 库存储在用户可访问的任何目录中。 | ||
− | {{ | + | {{Note|可以使用 {{OOo}} 扩展来打包和部署 Basic 库。《{{OOo}} 开发者指南》对[[Documentation/DevGuide/Extensions/Extensions|扩展]]进行了详细介绍。}} |
==关于 {{OOo}} Basic 库和模块== | ==关于 {{OOo}} Basic 库和模块== | ||
Line 23: | Line 23: | ||
;<tt>*.xba</tt>:存储单个 {{OOo}} Basic 模块的 {{OOo}} Basic 源代码的 XML 文件。该文件的名称与模块名称相对应。 | ;<tt>*.xba</tt>:存储单个 {{OOo}} Basic 模块的 {{OOo}} Basic 源代码的 XML 文件。该文件的名称与模块名称相对应。 | ||
;<tt>*.xdl</tt>:存储 {{OOo}} Basic 对话框的对话框元素的 XML 文件。该文件的名称与对话框名称相对应。 | ;<tt>*.xdl</tt>:存储 {{OOo}} Basic 对话框的对话框元素的 XML 文件。该文件的名称与对话框名称相对应。 | ||
− | ;<tt>*.pba</tt>: | + | ;<tt>*.pba</tt>:使用密码保护(即,对源代码进行加密)的 {{OOo}} Basic 模块。该文件的名称与模块名称相对应。 |
==关于 {{OOo}} Basic 配置文件== | ==关于 {{OOo}} Basic 配置文件== | ||
Line 31: | Line 31: | ||
{{OOo}} Basic 库以及用户定义的库。 | {{OOo}} Basic 库以及用户定义的库。 | ||
− | {{ | + | {{Warn| |
无法更改 <tt>script.xlc</tt> 和 <tt>dialog.xlc</tt> 配置文件的位置。 | 无法更改 <tt>script.xlc</tt> 和 <tt>dialog.xlc</tt> 配置文件的位置。 | ||
}} | }} | ||
基于 XML 的 <tt>script.xlc</tt> 文件包含 | 基于 XML 的 <tt>script.xlc</tt> 文件包含 | ||
− | {{OOo}} | + | {{OOo}} 可用的所有 Basic 库列表。可以使用以下标记: |
;<tt>library<nowiki>:</nowiki>name</tt>:指定 {{OOo}} Basic 库的名称。 | ;<tt>library<nowiki>:</nowiki>name</tt>:指定 {{OOo}} Basic 库的名称。 | ||
;<tt>xlink<nowiki>:</nowiki>href</tt>:指定该库的 <tt>script.xlb</tt> 文件的 URL。该 URL 必须以 <tt>file:///</tt> 表示法开头。 | ;<tt>xlink<nowiki>:</nowiki>href</tt>:指定该库的 <tt>script.xlb</tt> 文件的 URL。该 URL 必须以 <tt>file:///</tt> 表示法开头。 | ||
− | {{ | + | {{Note|如果该库位于用户安装的 <tt> <{{OOo}} installation directory>/user/basic</tt> 目录中,则不需要指定 <tt>xlink:href</tt> 标记的值。}} |
− | ;<tt>xlink<nowiki>:</nowiki>type</tt>: | + | ;<tt>xlink<nowiki>:</nowiki>type</tt>:此标记是 <tt>xlink:href</tt> 标记所必需的,必须将其设置为 <tt>simple</tt>。 |
− | ;<tt>library<nowiki>:</nowiki>link</tt>: | + | ;<tt>library<nowiki>:</nowiki>link</tt>:指定条目所链接到的库是否位于默认库位置。{{OOo}} Basic 库的默认位置为 <tt>''install-dir''/user/basic</tt>。如果仅使用库的默认位置,请将此标记的值设置为 <tt>false</tt>。对于所有其他库,请将此标记的值设置为 <tt>true</tt>。 |
;<tt>library<nowiki>:</nowiki>readonly</tt>:指定库是否为只读。对于只读访问,请将此标记的值设置为 <tt>true</tt>。 | ;<tt>library<nowiki>:</nowiki>readonly</tt>:指定库是否为只读。对于只读访问,请将此标记的值设置为 <tt>true</tt>。 | ||
以下 XML 代码用于 <tt>script.xlc</tt> 配置文件 | 以下 XML 代码用于 <tt>script.xlc</tt> 配置文件 | ||
− | + | ({{OOo}} Basic 库的配置文件)。该文件与 <tt>dialog.xlc</tt> | |
− | + | 文件的唯一差异是,<tt>xlink:href</tt> 标记指向库的 <tt>script.xlb</tt> 文件, | |
而不是 <tt>dialog.xlb</tt> 文件。 | 而不是 <tt>dialog.xlb</tt> 文件。 | ||
Line 75: | Line 75: | ||
可以为现有 {{OOo}} 安装提供自定义 {{OOo}} Basic 库,或者仅为新安装提供这些库。 | 可以为现有 {{OOo}} 安装提供自定义 {{OOo}} Basic 库,或者仅为新安装提供这些库。 | ||
− | {{ | + | {{Note|<tt>script.xlc</tt> 和 <tt>dialog.xlc</tt> 配置文件均位于以下目录中: |
*Solaris 和 Linux 平台:<tt>''install-dir''/usr/basic/</tt> | *Solaris 和 Linux 平台:<tt>''install-dir''/usr/basic/</tt> | ||
*Windows:<tt>C:\Documents and Settings\''user-id''\Application Data\''install-dir''\user\basic\</tt>}} | *Windows:<tt>C:\Documents and Settings\''user-id''\Application Data\''install-dir''\user\basic\</tt>}} | ||
Line 87: | Line 87: | ||
以 root 用户身份,将自定义库从创建该库的用户安装复制到 {{OOo}} 服务器安装中。<br> | 以 root 用户身份,将自定义库从创建该库的用户安装复制到 {{OOo}} 服务器安装中。<br> | ||
<tt>cp -r ''install-dir''/user/basic/custom library ''install-dir''/share/basic/</tt> | <tt>cp -r ''install-dir''/user/basic/custom library ''install-dir''/share/basic/</tt> | ||
− | {{ | + | {{Note|在 Windows 中,创建的自定义库的位置为 <tt>C:\Documents and Settings\''user-id''\Application Data\''installation-dir''\user\basic\custom library</tt>}} |
</li> | </li> | ||
<li> | <li> | ||
在用户安装的 <tt>script.xlc</tt> 配置文件中,添加一个指向库的 <tt>script.xlb</tt> 配置文件的链接。<br> | 在用户安装的 <tt>script.xlc</tt> 配置文件中,添加一个指向库的 <tt>script.xlb</tt> 配置文件的链接。<br> | ||
− | + | 请使用以下语法来添加链接: | |
<source lang="xml"> | <source lang="xml"> | ||
Line 103: | Line 103: | ||
在用户安装的 <tt>dialog.xlc</tt> 配置文件中,添加一个指向库的 <tt>script.xlb</tt> 配置文件的链接。<br> | 在用户安装的 <tt>dialog.xlc</tt> 配置文件中,添加一个指向库的 <tt>script.xlb</tt> 配置文件的链接。<br> | ||
− | + | 请使用以下语法来添加链接: | |
<source lang="xml"> | <source lang="xml"> | ||
Line 130: | Line 130: | ||
在用户安装的 <tt>script.xlc</tt> 配置文件中,添加一个指向库的 <tt>script.xlb</tt> 配置文件的链接。<br> | 在用户安装的 <tt>script.xlc</tt> 配置文件中,添加一个指向库的 <tt>script.xlb</tt> 配置文件的链接。<br> | ||
− | + | 请使用以下语法来添加链接: | |
<source lang="xml"> | <source lang="xml"> | ||
<library:library library:name="Library Name" | <library:library library:name="Library Name" | ||
Line 140: | Line 140: | ||
在用户安装的 <tt>dialog.xlc</tt> 配置文件中,添加一个指向库的 <tt>script.xlb</tt> 配置文件的链接。<br> | 在用户安装的 <tt>dialog.xlc</tt> 配置文件中,添加一个指向库的 <tt>script.xlb</tt> 配置文件的链接。<br> | ||
− | + | 请使用以下语法来添加链接: | |
<source lang="xml"> | <source lang="xml"> | ||
<library:library library:name="Library Name" | <library:library library:name="Library Name" | ||
Line 152: | Line 152: | ||
===使用宏安装自定义 {{OOo}} Basic 库=== | ===使用宏安装自定义 {{OOo}} Basic 库=== | ||
− | + | 可以创建一个宏,以便安装 {{OOo}} 文档中的 {{OOo}} Basic 库。 | |
<ol class="task"> | <ol class="task"> | ||
Line 165: | Line 165: | ||
</li> | </li> | ||
<ol class="task" type="a"> | <ol class="task" type="a"> | ||
− | <li>选择'''工具 → 宏 → 管理宏 → {{OOo}} Basic'''。将显示 '''{{OOo}}Basic 宏'''对话框。</li> | + | <li>选择'''工具 → 宏 → 管理宏 → {{OOo}} Basic'''。将显示 '''{{OOo}} Basic 宏'''对话框。</li> |
− | <li>在'''宏的来源''' | + | <li>在'''宏的来源'''列表中,选择 Writer 文档。</li> |
<li>在'''宏名称'''框中,键入安装宏的名称。</li> | <li>在'''宏名称'''框中,键入安装宏的名称。</li> | ||
<li>单击'''新建'''按钮。将显示 '''BASIC''' IDE 窗口。</li> | <li>单击'''新建'''按钮。将显示 '''BASIC''' IDE 窗口。</li> | ||
Line 218: | Line 218: | ||
<li>在文档中添加一个按钮。</li> | <li>在文档中添加一个按钮。</li> | ||
<ol class="task" type="a"> | <ol class="task" type="a"> | ||
− | <li>在''' | + | <li>在'''窗体控件'''工具栏中,''''''单击'''按钮'''图标。</li> |
− | <li> | + | <li>在文档中通过拖动来绘制按钮。</li> |
</ol> | </ol> | ||
Line 227: | Line 227: | ||
<li>单击'''事件'''选项卡。</li> | <li>单击'''事件'''选项卡。</li> | ||
<li>单击按钮事件旁边的省略号 '''...''' 按钮,例如,'''按住鼠标键'''事件。</li> | <li>单击按钮事件旁边的省略号 '''...''' 按钮,例如,'''按住鼠标键'''事件。</li> | ||
− | <li>在''' | + | <li>在'''指定操作'''对话框中,单击'''宏'''按钮。将显示'''宏选择器'''对话框。</li> |
<li>在'''库'''列表中,选择包含该安装宏的库。</li> | <li>在'''库'''列表中,选择包含该安装宏的库。</li> | ||
<li>在'''宏名称'''列表中,选择该安装宏。</li> | <li>在'''宏名称'''列表中,选择该安装宏。</li> | ||
<li>单击'''确定'''。</li> | <li>单击'''确定'''。</li> | ||
− | <li>在'''指定宏'''对话框中,单击'''确定''' | + | <li>在'''指定宏'''对话框中,单击'''确定'''按钮。</li> |
</ol> | </ol> | ||
<li>保存该文档。</li> | <li>保存该文档。</li> | ||
Line 237: | Line 237: | ||
{{PDL1}} | {{PDL1}} | ||
+ | {{InterWiki_Languages_AdminGuide|articletitle=Documentation/Administration Guide/Using Custom Macros and Libraries}} |
Latest revision as of 20:32, 13 July 2018
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). |