我正在尝试修改我经常使用的日历模块,并将其设为图库。我在“Calendar Display Rows”中有一个名为“display_images”的字段。显示图像字段是重复数字字段,其生成数字网格([7]重复)。
我在“日历显示行”中有一个重复的计算字段,称为“显示图像”([7]重复),这是一个未存储的容器字段计算,指向表“图像”中的“图像”字段。
匹配字段如下:
日历显示行:display_images =图像:图像编号
如何在“图像”表格中获取具有匹配图像编号的图像,以根据匹配编号在重复字段“显示图像”中动态显示。
请注意,我正在尝试修改日历模块,因为我想干净地调整网格大小以获得全屏外观。水平门户无法正常工作。这是一个带有重复字段的垂直门户网站。
答案 0 :(得分: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,[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 )