FileMaker是否为记录的所有/部分字段自动生成按钮和字段?

FileMaker是否为记录的所有/部分字段自动生成按钮和字段?,filemaker,Filemaker,我正在FileMaker中编写一个数据同步/合并解决方案,其中我有两个数据源并比较/合并它们 这意味着我有很多表,每个表都有很多字段 我为一个测试字段构建了逻辑和布局,以便FM在本地和远程数据源不同时向我显示,并向我显示两个按钮,让我选择要合并到另一组中的数据 当然,我可以手动复制所有表中所有字段的所有公式和按钮,但那太疯狂了。有没有办法告诉FileMaker“在所有字段的按钮上使用此布局和脚本步骤,同时更改字段的名称” 或者,换句话说,我有两个字段和两个按钮。让我们把它们称为DataA::fi

我正在FileMaker中编写一个数据同步/合并解决方案,其中我有两个数据源并比较/合并它们

这意味着我有很多表,每个表都有很多字段

我为一个测试字段构建了逻辑和布局,以便FM在本地和远程数据源不同时向我显示,并向我显示两个按钮,让我选择要合并到另一组中的数据

当然,我可以手动复制所有表中所有字段的所有公式和按钮,但那太疯狂了。有没有办法告诉FileMaker“在所有字段的按钮上使用此布局和脚本步骤,同时更改字段的名称”

或者,换句话说,我有两个字段和两个按钮。让我们把它们称为DataA::field和DataB::field。我有一个并排显示它们的布局。该布局有两个带有附加逻辑的按钮,仅当字段值不同时才显示按钮。按钮A有一个“单步”公式,表示“将B的字段值设置为A”,按钮B有一个公式“将A的字段值设置为B”

有没有一种方法可以将这些按钮及其逻辑复制到我表格中的所有字段,而无需进行大量手动操作?

答案是肯定的

你需要

[使您的文件生成器工作]

fmWorkMate是一个免费的FileMaker开发人员工具箱(我在过去10年左右写过)

我用fmWorkMate自己来做你正在做的事情!在我的例子中,我在FileMaker解决方案的表和嵌入式ESS表之间同步字段,但过程是相同的。。。生成一个字段/一位代码。。。然后自动生成剩余的('乘'):-)

那么,如何

首先下载并安装fmWorkMate-这实际上是过程中最棘手的部分,因为最新版本尚未发布(发布后我会更正)

  • 如果您使用Mac OS
  • 如果使用Windows,则需要从
  • 如果你还有什么问题,或者有任何麻烦,请联系我,我会把工具拿出来(最后)或者给你(至少)
以下是几个示例,以说明如何使用fmWorkMate实现您的愿望:

[编辑:

我刚刚重读了你们的问题,意识到我在这里的第一个答案并没有直接回答你们的问题,而是展示了如何用字段C和D替换字段A和B

尽管如此,这些示例仍然很有用,并且说明性很强,而且这些技术相互依赖=>,因此我添加了示例4,作为下面问题的完整答案。

/编辑]

示例1:从带有A和B的两个按钮中,创建带有C和D的两个类似按钮 理论上:
  • 从FileMaker中复制按钮(
    CMD+C
    /
    ctrl+C
  • 使用fmCheckMate将FileMaker对象转换为可编辑的XML
    • 开放式将死
      • 开放式fmWorkMate
      • 选择fmCheckMate工具(或按
        CMD+2
        /
        ctrl+2
    • 按下按钮
      [转换剪贴板FM⭤ XML]
      • 或者按
        CMD+2
        /
        ctrl+2
      • 或者按
        CMD+OPT+C
        /
        ctrl+alt+C
      • 如果您没有自动更改为XML编辑器视图。。。
        • 按编辑按钮(或
          CMD+3
          /
          ctrl+3
          )更改为XML编辑视图
          • 或者设置fmCheckMate以始终切换到xml编辑器:
            • fmCheckMate>设置…>XML编辑器>小型编辑器
  • 根据需要查找并替换XML中的文本
    • 将字段
      A
      替换为字段
      C
      • 单击
        [F]
        ind字段(或按
        CMD+F
        /
        ctrl+F
        • 键入要更改的字段的名称
          A
      • 单击
        [R]
        eplace字段(或按
        TAB
        CMD+SHIFT+F
        /
        ctrl+SHIFT+F
        • 键入要更改为
          C
      • 替换所有事件:
        • CMD+OPT+A
          /
          ctrl+alt+A
        • 或者(在更新版本的fmCheckMate上)按下
          [R]
          按钮
        • 或者(在旧版本的fmCheckMate上)按住
          ALT
          并按下
          [R]
          按钮
    • 将字段
      B
      替换为字段
      D
      • B
        D
  • 转换回FileMaker对象
    • 按[->FM]按钮(或按
      CMD+OPT+V
      /
      ctrl+alt+V
  • 粘贴到FileMaker(
    CMD+V
    /
    ctrl+V
  • (或者更确切地说,哎呀,我们把它弄坏了吗?)

    实际上: 对于您给出的特定示例-仅使用一个字母的字段名
    A
    B
    -上述操作将破坏XML,而不起作用-因为搜索和替换是跨整个XML的,字母
    A
    B
    出现在整个XML的不同位置,替换它们将使XML不可读

    然而,您实际要替换的99.9%的字段名都是非常独特的,事实证明这很少是一个问题

    例如,如果您的字段名为
    Previous value
    Current value
    ,并且您希望将它们更改为
    Previous event
    Current event
    ,则根本没有问题

    但是,请注意,仅仅用
    事件
    替换
    (可能)也会破坏XML,因为
    很可能是XML的名称
    CustomerName
    Company
    Street
    HouseNumber
    City
    ZIP
    Country
    Item
    Quantity
    UnitPrice
    
    Day 1
    Day 2
    Day 3
    Day 4
    Day 5
    Day 6
    Day 7
    Day 8
    Day 9
    Day 10
    Day 11
    Day 12
    Day 13
    Day 14
    Day 15
    Day 16
    Day 17
    Day 18
    Day 19
    Day 20
    Day 21
    Day 22
    Day 23
    Day 24
    Day 25
    Day 26
    Day 27
    Day 28
    Day 29
    Day 30
    Day 31
    Day 32
    Day 33
    Day 34
    Day 35
    Day 36
    Day 37
    Day 38
    Day 39
    Day 40
    Day 41
    Day 42
    
    CustomerName
    Company
    Street
    HouseNumber
    City
    ZIP
    Country
    Item
    Quantity
    UnitPrice
    
    customer_name
    company
    street
    house_number
    city
    zip
    country
    item
    quantity
    unit_price
    
    CustomerName [CustomerName]      customer_name [customer_name]
    
    CustomerName    customer_name
    Company company
    Street  street
    HouseNumber house_number
    City    city
    ZIP zip
    Country country
    Item    item
    Quantity    quantity
    UnitPrice   unit_price