我有一个filemaker Pro 13数据库,大约有120条记录(适用于会议)。我想与BBEdit合作为每个摘要创建单独的文件,因此applescript。令我惊讶的是(尽管有许多关于脚本的网页提示)“[tag:current record]”在脚本中无法识别。
相关的一点是:
FM Script:
Loop
Perform Applescript
tell application "FileMaker Pro"
activate
set MyFileName to cell "WebAbstractFileName" of table "SelectionProcess"
set MyWebAbstract to cell "WebAbstract" of table "SelectionProcess" as text
end tell
-- (BBEdit bit, which works fine in testing)
Go to Next Record (exit after last)
End Loop
如果我只想检索第一条记录,这样可以正常工作!
这个applescript是在一个filemaker脚本中设置的,它循环遍历记录,但脚本并不关心它在哪个记录中。
我已经尝试在表引用之前添加'当前记录'但它然后给我错误(例如错误“FileMaker Pro得到错误:找不到对象。”编号-1728来自当前记录的单元格“WebAbstractFileName”表“SelectionProcess”)没有'当前记录'它工作正常,但只给我第一个记录。
答案 0 :(得分:0)
更多的修修补补了这一点。关键是要改变语法。该脚本现在显示:
tell application "FileMaker Pro"
activate
tell current record to set MyFileName to cell "WebAbstractFileName"
tell current record to set MyWebAbstract to cell "WebAbstract"
end tell
似乎发生的事情是这些字段必须是可见的(但我有一点不是问题......去图。如果它们可见,你可以删除表规范)。包含在循环块中的此脚本将作用于找到的集合,并且(如果指示)在最后一条记录之后退出。
我附加bbedit脚本来创建一个新文件,并使用从另一个字段中获取的变量保存它,以防万一。
tell application "BBEdit"
set notesPath to ":Users:ophiochos:Dropbox:TL Conference Admin:Webpage materials:Abstracts:"
set newFilePath to notesPath & MyFileName & ".html"
set newDoc to make new text document with properties {contents:MyWebAbstract}
tell newDoc
set source language to "HTML"
save to newFilePath
close window
end tell
end tell
答案 1 :(得分:0)
以下(大致)如何在Filemaker脚本中执行此操作:
Go to Layout [ “YourTable” ]
# FIND THE RECORDS OF INTEREST
Perform Find [ Restore ]
Go to Record/Request/Page [ First ]
Loop
New Window [ ]
# ISOLATE THE CURRENT RECORD
Show All Records
Omit Record
Show Omitted Only
Set Variable [ $path; Value:Get ( DocumentsPath ) & "someFolder/" & YourTable::Somefield & ".html" ]
Export Records [ No dialog; “$path” ]
Close Window [ Current Window ]
Go to Record/Request/Page [ Next; Exit after last ]
End Loop
这会将找到的集合中的每个记录作为单个文件导出到位于用户的Documents文件夹中的文件夹“someFolder”中,使用YourTable::Somefield
字段的内容作为文件名。
如果如你所说,你不需要单独的文件,那么当然这可以更简单。
答案 2 :(得分:0)
或者你可以简单地创建一个计算字段,其中包含每个记录所需导出文件的内容,逐个遍历记录,然后只使用导出字段内容['YourCalculatedField_c'] 脚本步骤。
答案 3 :(得分:0)
您还可以使用FM来预览html输出,方法是使用Web查看器来显示您的html。这一点,以及单独导出,您可以获得所有这些功能,而无需外部程序。
如果需要更改输出文件的文本编码,还可以在xslt中指定用于输出文件的文件: http://filemakerhacks.com/2012/09/23/export-field-contents-as-utf-8/
此外,如果从FileMaker中执行applescript,则不需要“tell application”行,因为它是隐含的。