【问题标题】:Filemaker Using a Repeating Field in A Portal to Display Related RecordsFilemaker 使用门户中的重复字段来显示相关记录
【发布时间】:2014-08-23 10:56:08
【问题描述】:

我正在尝试修改我经常使用的日历模块并使其成为图库。我在“日历显示行”中有一个名为“display_images”的字段。显示图像字段是一个重复的数字字段,它生成一个数字网格([7] 重复)。

我在“日历显示行”中有一个重复计算字段,称为“显示图像”([7] 次重复),它是一个未存储的容器字段计算,指向“图像”表中的“图像”字段。

匹配字段如下:

日历显示行:display_images = 图片:图片编号

如何获取“图像”表中具有匹配图像编号的图像,以根据匹配编号在重复字段“显示图像”中动态显示。

请注意,我正在尝试修改日历模块,因为我想干净地调整网格的大小以获得全屏外观。水平门户将不起作用。这是一个带有重复字段的垂直门户。

【问题讨论】:

    标签: filemaker


    【解决方案1】:

    基础知识:

    你们的关系:

    Calendar Display Rows::display_images = Images::image number
    

    将从显示日历显示行的布局中找到所有带有image number 的图像,该图像与display_images 的任何重复项中的值匹配。例如,如果 display_images[1] = 1 和 display_images[2] = 2,您将通过关系获得图像 1 和 2,无论为关系建立的排序顺序如何。

    假设 display_images 的重复以与您的关系的排序顺序相同的顺序填充,并且您拥有的唯一空白重复位于该字段重复的最高端 (1, 2, 3, [空白]可以,但 1, [空白], 3, 4 不行),您可以对Calendar Display Rows::show images 使用以下计算:

    GetNthRecord (
       Extend ( Images::image ) ;
       Get ( CalculationRepetitionNumber )
    )
    

    在上面,GetNthRecord 按排序顺序获取图像中相关记录的第 n 条记录。 Extend 允许重复 show images 字段中的任何重复使用相关图像,Get ( CalculationRepetitionNumber ) 告诉 FileMaker 重复 1 获取值 1,重复 2 获取值 2,等等。

    更高级:

    上述假设(匹配排序顺序,中间没有空白字段)可能适用于日历,但可能不适用于图库。您完全有可能需要一些允许空白字段或不匹配的排序顺序的东西。

    为此,可能需要自定义函数(如果您有 FileMaker Advanced)。该函数可以重复查找到的图像记录并测试 display_images[i] 是否与图像编号匹配。

    Find Proper Image自定义函数:

    Let (
          targetImageIndex = GetRepetition ( Calendar Display Rows::display_images ; forRepetition )
    ;
          Case (
               IsEmpty ( targetImageIndex ) ; "" ;
               workingRecord > Count ( Images::image number ) ; "" ;
               targetImageIndex = GetNthRecord ( Extend ( Images::image number ) ; workingRecord ) ; GetNthRecord ( Extend ( Images::image ) ; workingRecord ) ;
               Find Proper Image ( forRepetition ; workingRecord + 1 )
          )
    )
    

    那么show images计算字段中的代码将是:

    Find Proper Image ( Get ( CalculationRepetitionNumber ) ; 1 )
    

    【讨论】:

    • 感谢@pft221 GetNthRecord ( Extend(Images::IMAGE) ; Get ( CalculationRepetitionNumber ) ) 非常适合图像网格!关于如何从脚本中的相关表中获取相应的 imageID(序列号)有什么想法吗?
    • 仅供参考,我尝试了相同的计算来检索 ID,但不是在门户的所有行中返回唯一 ID,而是仅返回 7 个唯一 ID,并在门户的所有 6 行中重复相同的行 ID。
    • NVM 我得到了计算以显示 ID。由于某种原因,此门户网站存在错误。但是您有没有想过在点击时捕获 ID(设置全局变量)以便在脚本中使用它?
    • 这可能值得另一个问题——我很少使用重复字段,所以你可能会在良好的 UI 上获得更好的答案来单击其他人的重复字段——但我会查看顶部的任何一个不可见按钮重复字段或使用Get(ActiveRepetitionNumber) 的脚本触发器。
    • 感谢@pft221 的帮助。我真的希望他们能在 FMP13 中推出原生水平门户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多