我正在开发一个数据库(MS access 2010)来支持一所具有明确定义的学费报价模型的学校。为每个报价组装产品列表,然后应用各种折扣。折扣可以是百分比或绝对金额。到目前为止,很容易。问题是他们的业务逻辑需要:
- 折扣数量没有限制。
- 以定义的顺序应用的特定折扣(在我的例子中使用“折扣序数”列实现,值 1(第一次应用)到 100(最后一次应用)。
- 折扣的每个顺序应用都是报价的总和。例如:总产品 $1000。折扣:50%。价值:500 美元。小计 500 美元。小计:500 美元。折扣:25 美元。价值:25 美元。小计:475 美元。小计:475 美元。折扣:10%。价值:47.50 美元。小计:427.50 美元。
这似乎是“获取前一行中字段的值”问题的变体,但增加了“字段值”实际上是累积计算的转折。它有递归的味道:虽然折扣仍然存在,但小计(之前的小计)。
我不清楚如何在报告中实现这一点,因为上面提到的计算是自引用的。我不是在这里寻找代码,只是关于解决问题的一般方法的指导(即某种全局变量,使用 VBA - 在这种情况下,我不确定 VBA 中的查询和该报告将是 - 或一些计算字段的技巧,尽管我花了很多时间试图弄清楚)。有什么想法吗?