Filemaker使用门户中的重复字段显示相关记录

时间:2014-08-23 10:56:09

标签: filemaker

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

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

匹配字段如下:

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

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

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

1 个答案:

答案 0 :(得分:1)

基础知识:

你的关系:

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

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

假设display_images的重复次数与您的关系的排序顺序的顺序相同,并且您所拥有的唯一空白重复位于字段重复的最高端(1,2,3,[blank]没关系,但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,等等。 / p>

更高级:

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

为此,可以按顺序使用自定义功能(如果您有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 )
相关问题