我有一个Filemaker数据库,其中包含一个Members表,一个Events表和一个名为Attendance的连接表,该表应列出哪些成员参加了哪些事件。出席会员已为会员勾选“允许创建新记录”(事件不需要它)。
数据到达Excel电子表格以导入出席。但后来我想知道是否有人参加我们的记录中的人...有点像这样:
如果我理解正确,步骤3和4应该是这样的:
Set Variable [ $fname; Value: Attendance::firstname ]
Go To Layout ["Member" (Firstname)]
New Record/Request
Set Field [Member::Firstname; $fname]
即。将所需信息放入变量,在相关表中启动新记录,并将数据设置为变量值。
但是如何让第2步发生?我猜测某种循环将通过考勤中找到的记录集,并获取相关的标识符。如何向会员表显示它是否存在?
答案 0 :(得分:0)
使用EQUALS关系链接两个表。
写一个脚本:
// Loop through your attendance records.
// Be sure you're in the correct layout
Go to Layout ["imported list"]
// Attempt to go to the membership record of the person who is attending the event.
Go to Related Record [Show only records from: from table: "membership table"; using layout: "membership table"
// If the person who is attending IS in the membership list, you'll go to that member's record in the "membership table."
// If the person who is attending is NOT in the membership list, you'll get an error. You can use that error in an if statement to execute code to add that member.
If [Get ( LastError ) = "101"]
// insert code to add new member
End if
答案 1 :(得分:0)
由于您已经在Member
和Attendance
之间建立了关系,这意味着您可以从关系中的“出勤”表中“看到”任何相关成员。
我们也知道您只需要评估来自电子表格的新出勤记录。
我还假设电子表格中每个成员可能有多个出勤记录。情况可能并非如此,但假设它是可能的更安全。
我还假设您通过成员中的主键和出席时的外键(即Member::ID = Attendance::Member ID
)将成员表链接到出勤表。
所以这是我建议的脚本过程:
从考勤布局中,对省略的相关Member
记录执行查找,即:
# This assumes you're already on the Attendance layout
Enter Find Mode
Set field [Member::ID ; "*"]
Omit record
Constrain Find
这会为您提供一组新出勤记录没有匹配的会员记录。
从这里,您可以遍历每个出勤记录,并根据需要创建成员记录。
如果您检查会员的会员方Allow creation
- <出勤关系,您可以直接从出勤布局设置成员表中的字段。
由于会员和出席的1对多关系变为1 =会员很多=出席,您需要检查以确保您在循环期间尚未创建会员记录,即如果新会员有多个出席您可以在循环期间创建成员记录的记录。
你的循环看起来像这样:
Go to Record [First]
Loop
If [IsEmpty(Member::ID)]
Set Field [Member::First Name] // This first Set Field will create your new Member Record as long as the "Allow Creation" is enabled on the Member side
Set Field [Member::Last Name]
... This would be the rest of your set field steps for Member
End If
Go to Record [Next ; Exit After Last]
End Loop
通过这种方式,您无需离开出勤记录集。此外,将通过关系本身的属性自动创建和设置两个表的主键和外键。
答案 2 :(得分:-1)