主页 > 设计和创建数据库 > 创建脚本自动执行任务 > 利用 ActiveX Automation 编写脚本 (Windows) > 使用 FileMaker Pro ActiveX Automation (Windows)
使用 FileMaker Pro ActiveX Automation (Windows) FileMaker Pro 类型库 类型库描述了 FileMaker Pro 公开的对象、属性和方法,以便其他 ActiveX 客户端访问 FileMaker Pro。 FileMaker Pro 类型库包含在 FileMaker Pro 可执行文件中。它不是一个单独的文件。“FileMaker Pro 类型库”是在您安装 FileMaker Pro 时在电脑中注册的。 在 Visual Basic 中,将“FileMaker Pro 类型库”添加到项目的“可用参考”列表中。 要点 要使用应用程序实现 ActiveX Automation 文档,必须将“FileMaker Pro 类型库”添加到该程序的可用类型库列表中。如果不添加类型库,就无法通过 ActiveX Automation 访问 FileMaker Pro。 添加该库的方法因 ActiveX Automation 编写工具的不同而各有不同。如果不知道如何执行此项操作,请参考 ActiveX Automation 编写工具附带的手册。以下过程描述了如何在 Microsoft Visual Basic 中执行此项操作。 要将 FileMaker Pro 类型库添加到 Microsoft Visual Basic: 1. 在 Microsoft Visual Basic 中,选择“项目”菜单 >“参考”>“添加类型库”。 2. 选中“FileMaker Pro 类型库”左侧的复选框。 3. 单击“确定”。 一旦项目参考中包含“FileMaker Pro 类型库”,“Visual Basic 对象浏览器”中便会显示“FMPro70Lib”。这样一来,FileMaker Pro 向 Automation 控件公开的所有对象、方法和属性便可用了。 将 FileMaker Pro 声明为 Application 对象 每次创建 ActiveX Automation 脚本或应用程序以控制 FileMaker Pro 时,都要将 FileMaker Pro 声明为 Application 对象。要执行此项操作,可以在 Automation 文档的顶部编写一行代码,和文档中的其他定义放在一起。 例如: Dim FMProApp As FMPro70Lib.Application 获取 Application 对象 要对 FileMaker 进行 Automation 调用,必须先访问 FileMaker Application 对象。有两种方法可以实现此目的:调用 CreateObject 或调用 GetObject。 要使用任一种调用,请先声明 Application 对象: Dim FMProApp as FMPro70Lib.Application 只针对 CreateObject: Set FMProApp = CreateObject("FMPRO.Application") 如果 FileMaker 尚未运行,则 CreateObject 将启动它。 仅当 FileMaker 已经运行时,GetObject 函数才能检索 Application 对象。 只针对 GetObject: Set FMProApp = GetObject(, "FMPRO.Application") 注意其中的逗号,它指示 GetObject 的第一个参数(磁盘文件的路径)已被省略。该逗号是必需的,因为在某些情况下,GetObject 将文件名用作它的第一个参数。而在检索 FileMaker 实例时,必须省略文件名参数,否则将出现错误。 调用 FileMaker Pro 脚本 要通过 ActiveX Automation 运行 FileMaker Pro 脚本,请将脚本名称用作变量来调用 DoFMScript 函数。 例如: Dim FMProApp as FMPro70Lib.Application CreateObject("FMPRO.application") Dim FMProDocs, FMProDocs.Open("c:\MyFile.fmp12","","") Dim FMProDoc FMProDoc.DoFMScript ("MyScript") Set FMProDoc = nothing 切换 FileMaker Pro 应用程序的可见性 默认情况下,当 Automation 启动 FileMaker Pro 时,FileMaker Pro 将在隐藏状态下运行。可以使用 visible 属性隐藏或显示 FileMaker Pro。 例如,要隐藏应用程序,请设置: FMProApp.Visible = False 要显示应用程序,请设置: FMProApp.Visible = True 参考计数与对象释放 参考自动化对象后,参考计数将递增,以便通知 FileMaker 某个进程正在使用该对象。在 Visual Basic 中,每当已声明的变量被设置为 FileMaker 对象时,对象都会设置参考计数,例如: ' 只是一个声明 - 尚无参考 Dim FMDocs as FMPro70Lib.Documents ' 该行将参考 FileMaker 的“Documents”对象 Set FMDocs = FMApp.Documents ' 该行将再次参考同一 FileMaker“Documents”对象 Set FMDocs2 = FMApp.Documents 直到释放所有参考计数后,FileMaker 才会退出。在 Visual Basic 中,可以通过将对象变量设置为“Nothing”来释放参考计数,例如: ' 释放对 FileMaker“Documents”对象的参考 Set FMDocs = Nothing ' 释放对 FileMaker“Documents”对象的第二个参考 Set FMDocs2 = Nothing ' 释放对 FileMaker Application 对象的参考 Set FMApp = Nothing 当您使用完变量时,最好始终将对象变量设置为“Nothing”。 访问权限 FileMaker Pro 使用 Documents.Open(字符串格式的文件名, 字符串格式的帐号名, 字符串格式的密码) 方法。如果帐号名和密码参数是空字符串,则该文件将以客户端用户方式打开。 脚本 由 Automation 直接调用的 FileMaker Pro 脚本可能会中断彼此的执行。 从其他 FileMaker Pro 脚本中调用的 FileMaker Pro 脚本将按预期的顺序运行。 远程托管的文件 无法仅使用 ActiveX Automation 打开一个托管文件。要使用 Automation 打开一个托管文件,可以使用 FileMaker“打开”对话框直接打开此托管文件,然后使用 ActiveX Automation 访问文件,也可以编写一个打开此托管文件的 FileMaker Pro 脚本,然后通过 ActiveX Automation 调用该脚本。 相关主题 使用 FileMaker Pro ActiveX Automation (Windows) ActiveX Automation 示例 (Windows)