你不得不原谅我,因为我仍然是Filemaker的新手。
我经历了很多谷歌搜索建立了一个数据库,我们用它来记录与饲料场饲料相关的牲畜的所有细节。
我们在单独的“财务”表中输入发票明细。发票均通过“EID”(电子身份)链接到特定动物并包含成本代码(即,成本代码“B”代表购买费用,成本代码“TI”代表运输到设施中。)
然后,有关单个动物的财务详细信息将显示在其“财务”选项卡上的门户中。
我想要显示的是基于成本代码的单个动物的门户详细信息摘要。
Cost Code Total Value
B x
TI x
我试图将计算放入财务表中。
If(Cost Code = "B"; Total ; )
然而,有时会显示,有时会显示。
如果我尝试
If(Cost Code = "TI"; Total ; )
根本不会显示。
我在下方添加了一个屏幕截图,显示了财务门户网站以及门户网站所依据的字段。
答案 0 :(得分:0)
如果我理解,您希望基于Financials :: CostCode创建汇总总计。这是内置于FileMaker的列表视图中,但不幸的是,它在FileMaker门户中是免费的。
执行此操作的一种方法是在Animals表中设置一系列costCodeTotal字段。这些字段中的每一个都可以使用SQL来获取costCode聚合的相关财务值的总和。使用原始SQL(FileMaker中不推荐,但为简单起见,此处显示),每个字段的代码都类似于:
ExecuteSQL ( List(
SELECT sum(cost);
FROM financials;
WHERE costcode = <a cost code> AND animalID = ?
);
"";""; <the animal id>
)
这假设您有一组相对较小且有限的成本代码。
还有其他几种方法可以做到这一点,但这种方法的优点是您不需要为每种成本代码类型建立自定义关系,而传统的FileMaker方法通常需要这种关系。
答案 1 :(得分:0)
Filemaker没有SumIf()函数。还有其他几种方法可以仅汇总所选的相关记录。例如,您可以使用过滤的门户网站(仅限一行),按表达式过滤:
Financials::Cost Code = "B"
并将Cost Code
字段以及在门户中定义的汇总字段(在Financials表中)作为Value的总和。
这样做的好处是不需要任何额外的关系。
答案 2 :(得分:0)
你走在正确的轨道上,虽然我不确定为什么它不能正常工作。您需要创建存储桶字段以放置总计。但是,您的计算结果看起来有些偏差。我会写这样的东西:
Case (
Cost Code = "B" ; Total ;
0
)
确保您已取消选中Do not evaluate if all referenced fields are empty
。 可能成为麻烦的来源。
如果仍然无效,请尝试另一个功能相同但使用不同逻辑的计算,例如
Total * ( Cost Code = "B" )
正确填充存储桶后,您可以使用Sum
函数获取相关存储桶的总和。
total_b = Sum ( Financials::total_b )
作为一般故障排除提示,请尝试一次构建一个计算方法。从Total
开始,然后转到Case ( True ; Total ; 0 )
,最后转到最终表单。确保每个步骤都能产生您期望的效果。您的屏幕截图显示了您使用FileMaker Pro。访问FileMaker Pro Advanced的数据查看器对这些类型的案例有很大帮助。