脚本示例 可以在“帮助”中提供的脚本示例基础上创建自己的脚本。FileMaker Pro 初始解决方案中也包含若干脚本。 要在 FileMaker Pro 中查看脚本: 1. 选择“脚本”菜单 >“脚本工作区”。或者,选择“文件”菜单 >“管理”>“脚本”。 2. 在脚本窗格中,双击要查看的脚本。 脚本随即在脚本编辑面板中的新选项卡内打开。 If 结构示例 If、Else If、Else 和 End If 脚本步骤定义一种控制是否执行脚本步骤的结构。这种控制取决于可测试的条件或布尔值计算的结果。 •计算结果为除零以外的任何数值时,条件解析为真,然后执行随后的脚本步骤。 •计算结果为零、空值或无法解析为数字的内容时,条件解析为假,然后不会执行随后的脚本步骤。 Else If 步骤提供了附加的布尔值测试。如果所有条件都为假,Else 步骤会提供可选的执行步骤。 示例 1 执行查找。如果没有找到记录,则显示自定义对话框。如果找到记录,则对搜索结果加以排序。 执行查找 [恢复] 示例 2 执行查找。如果没有找到记录,则显示自定义对话框。如果找到一条记录,则转到“发货单详情”布局。如果找到多条记录,则转到“发货单”布局。 执行查找 [恢复] 循环结构示例 Loop、Exit Loop If 和 End Loop 脚本步骤定义一种用于重复脚本步骤的结构。Loop 和 End Loop 之间的脚本步骤会连续执行,直到满足 Exit Loop If 条件或“最后一步后退出”条件,执行“转到记录/请求/页面”或“转到入口行”步骤。 使用 Exit Loop If 脚本步骤指定要解析的计算。计算结果不是零时,会解析为真,并结束循环。计算结果为零时,会解析为假,并继续循环。 示例 1 将“客户::工作电话”的内容拷贝到所有记录的“客户::日常联系”中。 转到记录/请求/页面
[第一个] 示例 2 使用 Loop 语句依次对记录进行处理以导出容器字段中的文件。如果记录的容器字段为空,退出循环。 设置变量 [$路径 ; 值:Get ( 文档路径 ) & 产品::容器] 启动脚本示例 启动脚本可以自定义用户的数据库视图或者在数据库打开时执行其他操作。启动脚本是由OnFirstWindowOpen 脚本触发器触发的。有关设置启动脚本的信息,请参阅设置文件选项。 示例 1 如果帐户分配了“完全访问”权限集,会转到“管理”布局。否则,会转到“数据输入”布局。 If [Get ( 帐户权限集名称 ) = "[完全访问权限]"] 示例 2 检查哪个 FileMaker Pro 或 FileMaker Go 版本打开了数据库并转到适当的“客户”布局。 If [Get ( 设备 ) = 3] 执行脚本和脚本参数示例 “执行脚本”会执行当前文件或其他 FileMaker Pro 文件中定义的脚本。 可选的脚本参数可以将文本传递到脚本中。例如,在启动脚本时,您可以使用脚本参数存储活动记录编号,这样可以在脚本结束时很容易地返回该记录。或者,您可以从同一布局上不同按钮调用同一脚本,通过为每个按钮使用不同的脚本参数,可以很容易地判断调用脚本的按钮。 指定参数时,可以在脚本内访问它,或使用 Get ( 脚本参数 ) 函数将其传递到其他脚本。 也可以使用复杂参数,如名称列表或其他值。用回车符分隔的复杂参数可以使用 LeftValues 函数、MiddleValues 函数和 RightValues 函数进行解析。这些函数会返回用回车符分隔的列表中的起始值、中间值和结尾值。用其他字符分隔的复杂参数可以使用 Left 函数、Middle 函数和 Right 函数等函数解析为文本。 示例 1 运行不带参数的“打印发货单报表”脚本。 转到布局
["发货单报表"] 示例 2 使用字段“客户名”作为参数。将在一个采用“发货单报表”布局的新窗口中返回当前客户的发货单。 主脚本:当前客户发货单 查找匹配记录 [替换 ; 发货单::客户 ID] 子脚本:查看客户发货单 新建窗口 [名称:"客户:" & Get ( 脚本参数 ) ; 样式:文档] 注释 •脚本参数只在脚本执行期间存在。每次执行脚本时都会重置脚本参数。如果希望脚本参数在文件打开时始终存在,可以使用全局变量作为脚本参数。 •除非使用 Get (脚本参数) 函数明确将脚本参数传递到其他脚本,否则脚本参数只存在于父脚本内。 •脚本参数可以在脚本内部使用(但无法修改),也可以使用 Get (脚本参数) 函数将脚本参数作为子脚本的参数传递到子脚本。每次使用“执行脚本”调用子脚本时,还可以指定不同的参数。更改传递到子脚本的参数并不会修改父脚本中由 Get (脚本参数) 所返回的参数值。 脚本范例以下是HPC-2平台的脚本范例,HPC-1平台的脚本范例在/data/job-template目录下G09(把下面内容编写成脚本)#BSUB -q qtest2 #BSUB -app g09 #BSUB -o %J.out #BSUB -e %J.err #BSUB -n 8 #BSUB -R "span[hosts=1]" (8个计算核心在一台机器上) g09 inputfile.gjf (gjf文件开头加%nprocshared=8)
#BSUB -q qtest2 #BSUB -app gromacs2016f #BSUB -o %J.out #BSUB -e %J.err #BSUB -n 12 #BSUB -R "span[hosts=1]" gmx mdrun -ntomp 12 -v -deffnm inputfile
#BSUB -q qtest2 #BSUB -app ms2017 #BSUB -o %J.out #BSUB -e %J.err #BSUB -n 12 RunMatScript.sh -np 12 inputfile
#BSUB -q qtest2 #BSUB -app fluent #BSUB -o %J.out #BSUB -e %J.err #BSUB -n 8 fluent 3ddp -g -pib -mpi=intel -i inputfile.jou -t8 Ansys(把下面内容编写成脚本) #BSUB -q qtest2 #BSUB -app ansys #BSUB -o %J.out #BSUB -e %J.err #BSUB -n 8 ansys171 -b -dis -np 8 -i inputfile -o outputfile Polyflow(把下面内容编写成脚本) #BSUB -q qtest2 #BSUB -app polyflow #BSUB -o %J.out #BSUB -e %J.err #BSUB -n 12 polyflow -th 12 < inputfile
#BSUB -q qtest2 #BSUB -app matlab #BSUB -o %J.out #BSUB -e %J.err #BSUB -n 1 matlab -nodisplay -r inputfile
#BSUB -q qtest2 #BSUB -app lammps2018 #BSUB -n 12 #BSUB -e %J.err #BSUB -o %J.out #BSUB -R "span[hosts=1]" mpirun -np 12 lmp < in.poly
#BSUB -q qtest #BSUB -app vasp541n #BSUB -n 4 #BSUB -e %J.err #BSUB -o %J.out mpirun -np 4 vasp_std
#BSUB -q qtest2 #BSUB -app abaqus #BSUB -n 4 #BSUB -e %J.err #BSUB -o %J.out abaqus job=inputfile cpus=4 int 2>&1
#BSUB -q qtest2 #BSUB -app amber #BSUB -o %J.out #BSUB -o %J.err #BSUB -n 8 mpirun -np 8 sander.MPI -O -i min_2ojn.in -o min_2ojn.out -p 2ojn.top -c 2ojn.crd -r min_2ojn.rst -inf min_2ojn.inf
#BSUB -q qtest2 #BSUB -o %J.out #BSUB -e %J.err #BSUB -n 8 mpirun -np 8 可执行文件名 |