首页 文章

Filemaker Pro为另一个表中的每个选定记录添加条目

提问于
浏览
1

我有两个与公共字段链接的表 . 我正在尝试设置脚本或布局或任何可能有效的方法来实现以下目的 . 我需要能够从表1中选择某些记录,然后让程序给我一个视图,允许我为表1中的每个选定记录添加一个表到表2.表2有我想要的多个字段为所有选定的记录只完成一次 . 我假设我需要设置一个带循环的脚本,但如果有人能让我开始使用基础知识,我将非常感激 . 或者,如果有一种方法可以使用布局,那也很棒!使用Filemaker Pro 12 .

1 回答

  • 1

    如果我理解正确,你正在描述牛与事件之间的多对多关系:每只动物可以有多个相关的事件;并且事件可以涉及多个动物 .

    如果这是正确的,您将需要第三个连接表来将多对多关系解析为两个一对多关系:

    Cattle -< CattleEvents >- Events
    

    通过这种方式,您可以将事件的数据 once 输入到事件表中,然后通过在CattleEvents表中为每个动物创建一个连接记录,继续将不同的动物与事件相关联 . 连接表需要包含(至少)CattleID和EventID的字段 .

    与其他RDBMS不同,Filemaker还允许您在没有连接表的情况下创建多对多关系;您可以将Events表中的CattleID字段定义为文本,并使用CattleID的值列表将其格式化为复选框 . 然而,这种“捷径”在总结和报告方面有许多缺点 . 此方法的另一个问题是您无法记录关于连接的任何特定内容:例如,使用连接表,您不仅可以记录影响46种选定动物的疫苗接种事件;您还可以通过将其输入到连接表中的字段中来记录每只动物接收的个体剂量 .


    ADDED:

    在Cattle表中找到所需的发现集后,转到Events表,创建一个新记录,然后让脚本执行以下操作:

    Set Variable [ $eventID ; Events::EventID ]
    #
    Go to Layout [ Cattle ]
    Go to Record [ First ]
    Loop
      Set Variable [ $cattleIDs ; List ( $cattleIDS ; Cattle::CattleID ) ]
      Go to Record [ Next ; Exit after last ]
    End Loop
    #
    Go to Layout [ CattleEvents ]
    Loop
      Set Variable [ $i ; $i + 1 ]
      Exit Loop If [ $i > ValueCount ( $cattleIDs ) ]
      New Record
      Set Field [ CattleEvents::EventID ; $eventID ]
      Set Field [ CattleEvents::CattleID ; GetValue ( $cattleIDs ; $i ) ]
    End Loop
    #
    Go to Layout [ original layout ]
    

    在脚本结束时,您应该回到事件表中,将Cattle表中找到的集合中的所有牛出现在CattleEvents的门户中(假设您已将此门户放置在事件的布局上) . 在该门户中,您可以为与事件相关的每只动物添加特定数据 .

相关问题