创建一个新的FileMaker布局,根据一个字段和每个字段的计数显示唯一记录

时间:2009-07-02 18:46:17

标签: filemaker

我有一张这样的表:

应用程序,程序,UsedObject

它可以有这样的数据:

A,P1,ZZ
A,P1,BB
A,P2,CC
B,F1,KK

我想创建一个显示的布局:

申请,程序# A,2
B,1个

重点是计算不同的程序。

对于我的生活,我无法在FileMaker中完成这项工作。我已经创建了一个汇总字段来计算在每个组之后重置的程序,但是因为它没有消除我得到的重复程序:

A,3
B,1个

任何帮助都非常感激。

5 个答案:

答案 0 :(得分:1)

创建摘要字段为: cntApplicaiton =应用程序数

通过进入定义字段,创建一个名为cntApplication的字段,输入summary来完成此操作。在选项对话框中,使摘要字段成为应用程序的计数

现在创建一个包含小计部分和无人的新布局。小计应该在应用程序上排序。将Application和cntApplication字段放在小计中。如果您进入浏览模式并按应用程序排序,您应该获得所需的数据。

您还可以使用公式创建calc字段 GetSummary(cntApplication; Application) 这将允许您使用记录中的应用程序总数

答案 1 :(得分:0)

由于我也以这种形式生成数据,我采用的解决方案是填充FileMaker中的两个表。一个提供摘要视图,另一个提供详细视图。

答案 2 :(得分:0)

我认为你的问题是重复记录和密钥不足。

创建一个名为“App_Prog”的文本字段。在选项框中将其设置为自动输入计算,取消选中“不要替换...”选项,并使用以下计算:

Application & "_" & Program

现在使用App_Prog作为双方的字段创建表的自联接,并将其称为“匹配应用程序”。

现在,创建(如果你没有读过一个)一个唯一的序列号字段,'Counter'说,并确保在每个记录中输入一个值。 (查找全部,单击该字段,并在“替换字段内容...”中使用序列号选项)

现在添加一个新的calc字段 - Is_Duplicate以及以下calc ...

If (Counter = MatchingApps::Counter; "Master Record" ; "Duplicate")

最后,找到所有内容,单击“应用程序”字段,然后使用“替换字段内容...”进行计算,强制“App_Prog”的自动输入计算值得出一个值。

这会让你到哪儿来?您现在应该拥有一组标记为“主记录”或“重复”的记录。查找“主记录”,然后您可以执行摘要(通过应用程序)来计算不同的应用程序对。

答案 3 :(得分:0)

如果您可以访问自定义功能(需要FileMaker Pro Advanced),我会这样做:

添加RemoveDuplicates函数,如找到here(这是一个递归函数,它接受一个字符串列表并返回一个唯一值列表)。

在关系图中,添加另一个表,并添加Application = Application关系。

在表格中创建一个计算字段,计算结果如下:

ValueCount(RemoveDuplicates(List(TABLE2::Program)))

您会发现每条记录都包含给定应用程序的不同程序的数量。显示每个应用程序的摘要应该是相对简单的。

答案 4 :(得分:0)

我认为最好的方法是创建一个单独的应用程序表。因此,当您提供数据时,它将有两个记录,一个用于A,一个用于B。

因此,通过添加Applications表和现有表(我将其称为对象),基于ApplicationName作为匹配字段,创建从Applications到Objects(具有名为ObjectsParent的表)的关系。在Application和Program之间创建一个自连接关系,将Application和Program作为匹配字段。我将调用其中一个“表格事件”ObjectsParent和其他ObjectsChildren。确保对象中存在主键字段,该字段设置为自动输入序列号或其他方法以确保唯一性。我会称这个身份证。

所以你的关系图有三个表格出现:

Applications :: Applicaiton = ObjectsParent :: Application

ObjectsParent :: Application = ObjectsChildren :: Application,ObjectsParent :: Program = ObjectsChildren :: Program

现在在Objects中创建一个计算字段,并根据ObjectsParent的上下文进行计算,给它以下公式:

AppCount = Count(ObjectsChildren :: ID)

在“应用程序”中创建一个计算字段,并根据您用于将其与ObjectsParent关联的表格的上下文进行计算,并使用以下公式:

AppCount = ObjectsParent :: AppCount

对象中的count字段对于具有相同应用程序的每个对象都具有相同的值,因此从哪个获取此数据无关紧要。

如果您现在在列表视图中的Applications中查看数据,您可以将Applications :: Application和Applications :: AppCount字段放在布局上,您应该得到您所要求的内容。