#此示例将脚本参数从一个脚本传递到另一个脚本。#假设此脚本使用“课程::初级 法语”参数字符串值调用
转到布局 [Get(脚本参数)]执行脚本 [\每月出席报表 \参数: \月份\
(Get(当前日期))]对记录排序 [恢复; 无对话框 ]打印设置 [恢复; 无对话框]打印
[恢复; 无对话框] #在下一步骤中,“脚本参数”的返回值仍然为原始的“初级法语”,它将是在子 脚本“每月年级报表”中使用的参数
#前一个“执行脚本”并未更改此主脚本内的参数值
执行脚本 [\每月年级报表\参数:Get(脚本参数) ]对记录排序 [恢复; 无对话框]打 印设置 [恢复; 无对话框]打印 [恢复; 无对话框]
8.5利用
ActiveX Automation编写脚本(Windows)
许多 Windows应用程序使用 ActiveX Automation协议向外部控件公开其对象模型。
利用 FileMaker Pro中的 ActiveX Automation支持,您可以打开和关闭 FileMaker Pro 数据库文件、切换应用程序可见性以及运行 FileMaker Pro脚本。
FileMaker Pro是 Automation服务器。FileMaker Pro公开用于 Automation的对象可 以由 ActiveX客户端控制器或 Automation控制器访问,包括 Visual Basic和其他类 似的编程工具。
是 Automation服务器。FileMaker Pro公开用于 Automation的对象可
以由 ActiveX客户端控制器或 Automation控制器访问,包括 Visual Basic和其他类 似的编程工具。
FileMaker Pro中的 ActiveX Automation的主要优点是可以从 FileMaker Pro应用程序 外部启动 FileMaker Pro脚本。
例如,使用 FileMaker Pro ActiveX Automation和 Visual Basic,您可以创建自己的应 用程序(具有其自己的界面),并使用多个应用程序完成任务。例如,您可以在 Visual Basic中定义窗口,其中一个按钮上标明“获得今天的销售数据”。程序 “获得今天的销售数据”会打开 FileMaker Pro文件,并且通过调用 FileMaker Pro 脚本查找并导出当日的所有销售数据。自动化程序随后会启动 Excel并以图形表示 导出的数据。 .
要实现 ActiveX Automation和 FileMaker Pro的结合,您需要精通一种编程语 言,如 Visual Basic或 C++。 8.5.1 使用
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,请执行以下操作: 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(\) 如果 FileMaker尚未运行,则 CreateObject将启动它。
仅当 FileMaker已经运行时,GetObject函数才能检索 Application对象。 只针对 GetObject:
Set FMProApp = GetObject(, \)
注意其中的逗号,它指示 GetObject的第一个参数(磁盘文件的路径)已被省略。 p = GetObject(, \)
注意其中的逗号,它指示 GetObject的第一个参数(磁盘文件的路径)已被省略。
该逗号是必需的,因为在某些情况下,GetObject将文件名用作它的第一个参数。 而在检索 FileMaker实例时,必须省略文件名参数,否则将出现错误。 调用 FileMaker Pro脚本
要通过 ActiveX Automation运行 FileMaker Pro脚本,请将脚本名称用作变量来调用
DoFMScript函数。 例如:
Dim FMProApp as FMPro70Lib.Application
CreateObject(\)
Dim FMProDocs, FMProDocs.Open(\) Dim FMProDoc
FMProDoc.DoFMScript(\)
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调用该脚本。
ActiveX Automation打开一个托管文件。要使用 Automation打开一个托
管文件,可以使用 FileMaker“打开”对话框直接打开此托管文件,然后使用 ActiveX Automation访问文件,也可以编写一个打开此托管文件的 FileMaker Pro脚 本,然后通过 ActiveX Automation调用该脚本。
8.5.2 ActiveX Automation对象、方法和属性(