"当前记录"不起作用:在循环中编写Filemaker Pro 13

时间:2015-03-09 22:06:41

标签: applescript record filemaker

我有一个 Pro 13数据库,大约有120条记录(适用于会议)。我想与BBEdit合作为每个摘要创建单独的文件,因此。令我惊讶的是(尽管有许多关于脚本的网页提示)“[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”)没有'当前记录'它工作正常,但只给我第一个记录。

4 个答案:

答案 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

似乎发生的事情是这些字段必须是可见的(但我有一点不是问题......去图。如果它们可见,你可以删除表规范)。包含在循环块中的此脚本将作用于找到的集合,并且(如果指示)在最后一条记录之后退出。

我附加脚本来创建一个新文件,并使用从另一个字段中获取的变量保存它,以防万一。

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”行,因为它是隐含的。