Layout Filemaker中的动态布局

Layout Filemaker中的动态布局,layout,dynamic,filemaker,Layout,Dynamic,Filemaker,首先,我是FM新手,但我对基础知识掌握得很好。我需要做的是——在联系人信息类型布局中,我希望能够根据特定字段更改布局。例如,当记录被打开时,布局的背景将改变客户的颜色,改变供应商的颜色,等等 我试图更改基于字段的标签,但没有成功。我猜布局是静态的,只有数据字段会更改 我们使用FM Pro 谢谢, MarkFileMaker布局是静态的,但仍可以根据字段的值更改布局: 计算字段 如果要更改区域中显示的数据,可以使用计算字段。一个典型的例子是状态字段。为此,您需要向表中添加一个新字段,并在该字段上输

首先,我是FM新手,但我对基础知识掌握得很好。我需要做的是——在联系人信息类型布局中,我希望能够根据特定字段更改布局。例如,当记录被打开时,布局的背景将改变客户的颜色,改变供应商的颜色,等等

我试图更改基于字段的标签,但没有成功。我猜布局是静态的,只有数据字段会更改

我们使用FM Pro

谢谢,
Mark

FileMaker布局是静态的,但仍可以根据字段的值更改布局:

计算字段 如果要更改区域中显示的数据,可以使用计算字段。一个典型的例子是状态字段。为此,您需要向表中添加一个新字段,并在该字段上输入计算结果,如:

Case (
     IsEmpty(myTable::myField) ; "Please enter a value for myField." ;
     myTable::myField = "wrong value" ; "Please enter a correct value for myField." ;
     "Everything seems okay."
 )
条件格式 要更改背景颜色之类的内容,可以使用有条件格式化的字段。我通常会添加一个空的数字字段(在本例中,我们称之为emptyField)并对其进行设置,以便在修改过程中无法对其进行编辑

如果将emptyField放置在布局中所有其他字段的下方,并且不允许用户以浏览或查找模式输入字段,则可以使用条件格式更改字段的颜色

门户隐藏 当您希望UI的某些元素在不需要时消失时,可以使用此技术。例如,如果希望“提交”按钮仅在填写字段上的所有记录时显示

要使用此技术,我通常会在原始表上创建一个名为ReadyForSubmit的计算数字字段,并对其进行逻辑计算,如:

not IsEmpty(field1) and ... and not IsEmpty(fieldN)
(请注意,上述函数的值为1或0)

然后,我将在数据库中创建一个新的Support表,并将计算值设置为1的field One添加到该表中

然后,我将在myTable::readyForSubmit和Support::One之间建立一个关系

在布局上,创建一个包含一行的入口。将提交按钮放在该布局中。现在,当readyForSubmit计算为1时,按钮将出现。当计算为0时,按钮将隐藏

隐藏选项卡浏览器 最后,可以使用选项卡浏览器,将标题字体大小设置为1点,隐藏边框,并以编程方式控制浏览器。您可以使用它为不同类型的记录进行不同的字段排列。为此,您首先要为选项卡浏览器的每个选项卡指定一个对象名称,例如Tab1、Tab2、Tab3

然后,您将添加一个脚本goToTab,其中包含您希望何时转到每个选项卡的逻辑。说:

If (myTable::myField = "corn")
    Go to Object (Tab1)
Else If (myTable::myField = "squash")
    Go To Object (Tab2)
End If

然后,当记录加载时,您将使用脚本触发器运行goToTab。

随着filemaker 13的发布,可能还有另一种方法可以做到这一点。您可以使用滑动控件,命名控件中的面板,并根据记录类型有条件地切换到正确的面板

您可以在每个面板中删除记录类型的相应字段


条件格式也可以应用于文本;这可能比仅仅为了这个目的而使用一个空字段更干净。还有一件事——如果它只用于显示,那么“data,text/html”类型的web viewer有时就是工作。也可以使用webviewer进行数据输入,但这有点繁琐。