插件更新示例
以下示例会将已安装的
插件版本与位于 FileMaker Pro 文件的容器字段中的版本进行比较,并在必要时更新插件。
1. 在解决方案文件中,创建一个名为 Plugin Update 的表用来存储插件信息。
2. 定义以下字段:
字段名 | 字段类型 |
插件名 | 文本 |
所需的插件版本 | 数字 |
已安装的插件版本 | |
已安装的插件状态 | |
插件文件 | 容器 |
3. 创建名为“插件更新信息”的布局,并将其添加到您在步骤 2 中所定义的字段。
4. 创建以下脚本并将其命名为“安装插件”:
设置错误捕获 [打开]
安装插件文件 [插件更新::插件文件]
#
#处理错误
If [Get ( 上一个错误 ) ≠ 0]
If [Get ( 上一个错误 ) = 3]
显示自定义对话框 [插件更新::插件文件 & 无法安装。确保在“FileMaker Pro 插件”首选项中已选择“允许解决方案安装文件”。]
Else If [Get ( 上一个错误 ) = 1550]
显示自定义对话框 [插件更新::插件文件 &“已安装,但无法进行初始化。”]
Else If [Get ( 上一个错误 ) = 1551]
显示自定义对话框 [插件更新::插件文件 &“无法安装。”]
Else
显示自定义对话框 [“一般错误”& Get ( 上一个错误 ) &“安装时发生”& 插件更新::插件文件]
End If
End If
5. 创建以下脚本并将其命名为“检查插件版本”。
转到布局 [“插件更新信息"]
转到记录/请求/页面 [第一个]
Loop
If [插件更新::已安装的插件版本 < 插件更新::所需的插件版本]
#需要安装或更新插件。
执行脚本 [“安装插件”]
End If
转到记录/请求/页面 [下一步 ; 最后一步后退出]
End Loop
6. 创建以下脚本并将其命名为“检查是否已启用”:
设置错误捕获 [打开]
执行查找 [恢复]
#在“已安装的插件状态”字段中查找“已启用”
If[Get ( 查找个数 ) ≠ 0]
显示自定义对话框 [未启用部分所需的插件。确保在“FileMaker Pro 插件”首选项中已选择“允许解决方案安装文件”。]
End If
7. 创建名为“插件更新脚本”的启动脚本,该脚本会按数据库打开时的顺序参考上述脚本:
执行脚本 [“检查插件版本”]
执行脚本 [“检查是否已启用”]
转到布局 [原始布局]
客户端插件版本计算
Let (
[
PluginNamePosition = Position ( Get ( 安装的 FM 插件 ) ; 插件名 ; 1 ; 1 ) ;
插件版本开始 = 插件名位置 + Length ( 插件名 ) + 1 ;
插件版本结束 = Position ( Get ( 安装的 FM 插件 ) ; " ; " ; 插件名位置 ; 2 ) ;
插件版本长度 = 插件版本结束 - 插件版本开始
] ;
If ( PatternCount ( Get ( 安装的 FM 插件 ) ; 插件名 ) = 0 ; "" ; Middle ( Get ( 安装的 FM 插件 ) ; 插件版本开始 ; 插件版本长度 ) )
)
客户端插件启用状态计算
Let (
[
PluginNamePosition = Position ( Get ( 安装的 FM 插件 ) ; 插件名 ; 1 ; 1 ) ;
插件版本开始 = Position ( Get ( 安装的 FM 插件 ) ; " ; " ; 插件名位置 ; 2 ) + 1 ;
插件状态结束 = If ( Position ( Get ( 安装的 FM 插件 ) ; "¶" ; 插件名位置 ; 1 ) > 0 ; Position ( Get ( 安装的 FM 插件 ) ; "¶" ; 插件名位置 ; 1 ) ; Length ( Get ( 安装的 FM 插件 ) ) + 1 ) ;
插件状态长度 = 插件状态结束 - 插件状态开始
] ;
If ( PatternCount ( Get ( 安装的 FM 插件 ) ; 插件名 ) = 0 ;
"" ; Middle ( Get ( 安装的 FM 插件 ) ; 插件状态开始 ; 插件状态长度 ) )
)
相关主题