【问题标题】:Complex Adobe Acrobat calculation复杂的 Adob​​e Acrobat 计算
【发布时间】:2014-12-23 18:48:31
【问题描述】:

我在 Excel 中创建了一个复杂的定价表格,用于我的所有报价,但是报价变得越来越耗时,我想创建一个 PDF 人们可以根据自己的预算调整选项的版本。

我试图弄清楚 Javascript 但格式是陌生的,我找不到任何创建类似计算的人,有人可以帮忙吗?

会有多个“部分”,其中每个部分的总数将计算为总计,但每个“部分”基本相同。
但诀窍是,我希望每个“部分”都有一个仅在输入有效数量(例如 25+)后才显示的基本成本。
每个单选按钮“选择”也必须具有唯一值, 例如。 SizeChoice1=1,SizeChoice2=2,SizeChoice3=3。
所以内容总结(excel风格)是:

如果数量>25 (250+(SizeChoice(1,2or3)*QTY)+(ColourChoice(1,2or3)*QTY)+StockChoice(1,2or3)*QTY),如果QTY

如果可能的话,也最好是四舍五入的总数。

【问题讨论】:

  • 在我看来你的问题太宽泛了,也许你可以把它分成几个小问题?
  • 最重要的是这个:
  • 如果数量 >25 (250+(SizeChoice(1,2or3)*QTY)+(ColourChoice(1,2or3)*QTY)+StockChoice(1,2or3)*QTY),如果数量
  • 我想我只需要如果 QTY >25 (250+(SizeChoice(1,2or3)*QTY),如果 QTY

标签: javascript excel pdf formula acrobat


【解决方案1】:

这些选择是否相互排斥?可能不是。但是,如果是这样,您将使用复选框而不是单选按钮,为属于同一名称的那些按钮赋予相同的名称,但返回值不同。它们的行为类似于单选按钮。

不要简单地将 Excel 公式转换为 (Acrobat) JavaScript 是一个非常好的主意,因为 Excel 公式和 Acrobat JavaScript 背后的概念太遥远了,只有当你可怕地陷入你的鼻子(我知道我在说什么;我在心情好的时候被烧了太多次,同意把客户的Excel电子表格变成PDF表格。

您应该做的是对表单进行快速分析,以及它应该做什么。然后,您可以按照该逻辑构建表单。请记住,(Acrobat)JavaScript 允许创建循环(当您有功能块并在其字段名称中使用计数器时是理想的)或函数(您可以在任何需要的地方调用它,传递参数)。还要记住字段事件序列,它具有很大的副作用,您可以将所有逻辑合并到一个字段中,这甚至不是参与计算的字段的一部分。

在您的情况下,计算在很大程度上取决于字段名称的选择。做得好,你的代码又短又优雅,做得不好,你的代码会一团糟。

现在,对于您的示例,没有足够的信息说明它应该做什么。因此,将快速分析的结果添加到问题中可能是个好主意。

我想我知道你想做什么,在这种情况下,整个事情变得非常简单。

【讨论】:

  • 谢谢马克斯。不知道你说的互斥是什么意思?我选择单选按钮而不是复选框的原因是我不希望人们能够选择两个选项。它必须是 A、B 或 C。如果他们不小心检查了两个并且没有意识到价格是不正确的。有一个与尺寸选项相关的基本费用。然后价格会根据数量、库存选择、其他附加因素等因素而攀升。每一个项目都有一个 X 值。但我们也需要最低订购数量,因为不可能只订购一个。
  • 另外,我包含 IF 语句的原因是,如果选中了单选按钮(并且不能取消选中),则不需要清除整个表单并重新开始。如果在输入 QTYzero 值时 IF 语句恢复为 $zero ,则意味着它们不会影响总计。
  • 互斥确实意味着只有一个选项,A、B 或 C 是​​可能的,并且选择未选择的选项将重置其他选项。
  • 我之所以建议使用具有相同字段名称和不同导出值的复选框的原因是:当您使用单选按钮进行选择时,您不能再进行“不选择”,因为那是不是单选按钮的合法选择。使用复选框,“无选择”是一种隐含的合法选择,您可以取消选中一个选择。
  • 从表单逻辑的角度来看,最好清除有选择但没有项目数的部分。这应该在执行“完成”操作(例如保存、打印、提交等)时完成。如果找到选择,但没有数量,向用户显示警报可能是一个想法,如果他确认数量 0 是正确的,则重置复选框/单选按钮(通过将字段值设置为“关闭”。
猜你喜欢
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
相关资源
最近更新 更多