公式和计算

在此文中

预算表的公式列可以使用以下功能。

示例文件

为了找到有关使用公式的更多信息,请访问以下页面:

Company budget formula

Javascript中的计算公式

  • 该公式必须使用Javascript语言表示(不要与Java语言混淆)。

  • 如果有公式(或任何文本),则根据公式结果设置金额列中的值。

  • 您可以使用Javascript语言的所有功能,以及Banana软件提供的API。

小数点分隔符

作为小数点分隔符,JavaScript仅使用该点"."。
如果使用其他分隔符(用于本地格式数字的分隔符),则该数字可能会被截断。

计算顺序和未来价值不足

有关计算顺序的更多信息,参见财务计划

  • 这些行按日期排序并从最低的位置开始排列。

  • 如果有相同日期的行,则顺序为插入顺序。

  • 当一行被解析并且随后的几行尚未处理时,使用公式,您将只能访问该时刻的数据。

金额 = 最后一条指令的结果

在Javascript中,分号";" 用于分隔表达式。
如果Javascript公式包含多个用分号 ";"分隔的表达式,则金额列的值将是最后执行的表达式的结果。

  • 10*3 //则30 将返回

  • 如果有一系列由分号";"分隔的操作序列,则最后一次操作将继续。
    10*3;7; //则7 将返回

  • 如果有返回值,则该值将在返回后继续。
    返回 10; // 则10 将返回

变量

您可以直接在行中定义和使用变量。
该变量必须预先定义。

价格 = 10;
总计 = 价格 * 5;

自动变量

  • 当前预算
    该表包含重复创建后的预算行。
    这些用于与JRepeatNumber一起记录值。

  • 调试 可以是为 "true" 或 “false”的变量。
    如果为"true",则在消息中显示所有公式的结果。


  • 是引用当前行的javascript对象。

    • 可以使用值函数 ("columnNameXml").row.value("date") 返回到发生业务日期来检索单元格的值。

    • row.value ("JRepeatNumber")返回重复的进度。
      第一次重复是0。

预算功能

除了会计类API中定义的预算API外,还有一些特定功能。

budgetExchangeDifference (account, [date, exchangeRate])

该公式唤起了 Banana.document.budgetExchangeDifference 的功能。

BudgetGetPeriod(tDate, period)

此功能与重复使用功能结合使用。
当定义重复时,建议参考计算期间而不是精确的日期。

  • 日期参数
    计算期间的日期,通常是记录行的日期。

  • 期间参数
    首字母缩写

    • "MC", "QC", "YC" 代表当前月,当前季度,当前年。

    • "MP", "QP", "YP" 代表之前月,之前季度,之前年。

  •  返回值
    由两个日期组成的对象

    • 开始日期

    • 结束日期

// 示例
t = BudgetGetPeriod ('2015-01-01', 'MP') returns
t.startDate // 2014-12-01
t.endDate // 2014-12-31

特定预算功能

以下内容与Banana.document可用的内容相似,但可以在不指定Banana.document对象的情况下使用。

要考虑在内:

  • 您可以使用budgetGetPeriod中解释的缩写形式"MC", "QC", "YC", "MP", "QP", "YP"代替开始日期参数

  • 如果将期间指定为日期,则使用当前录入的日期。

  • 只有在结束日期早于行日期时使用结束日期才有意义。
    如果它等于或更高,则没有效果,因为它们尚未被处理,所以当前行之后的值尚不可用。

budgetBalance(account, startDate, endDate, extraParam)

余额到当前行。

budgetBalance('1000', 'MP'); //returns the balance of 1000 at the end of the previous month

budgetOpening(account, startDate, endDate, extraParam)

期初余额。

budgetTotal(account, startDate, endDate, extraParam)

该期间的借方和贷方变动之间的差异。

budgetTotal('1000', 'MC'); //returns the total movement of the 1000 account for the current month

budgetInterest( account, interest, startDate, endDate, extraParam)

在指定期间内(最大当前日期)计算账户的利息
如果您使用它来计算期末账户的利息,则显示公式的行应始终是该日期的最后一行。

  • 账户参数
    这将是计算其变动利息的账户号码

  • 利息参数
    以百分比表示利率

    • 正数 (2.5, 4, 10) 计算账户借方变动的利息

    • 负数 (-2.5, -4, -10) 计算账户贷方变动的利息

贷方(金额)

  • 如果金额参数为负,则返回正数。
    贷方(-100) // 返回 100

  • 如果金额参数为正,则返回0。
    贷方(100) // 返回 0

此功能与其他budgetBalance功能结合使用,仅在您需要的余额上可用。
如果要计算销售百分比,则使用此功能会更容易。
credit(budgetTotal('1000')) // 仅当它为负时才输入值

借方(金额)

  • 如果金额参数为正,则返回金额
    debit(100) //返回 100

  • 则返回0
    debit(-100) //返回 0

如果您只需要使用借方金额进行计算而避免使用贷方金额,则很有用。

包含(Include)

包含并执行一个 javascript文件,并可能创建自己的函数和变量,这些函数和变量可以在脚本中调用。

  • include "file:test.js" 
    执行了指定文件的内容,该名称是指正在使用的文件。

  • include "documents:test.js" 
    执行了文件中包含的文本文件的内容。
    这必须是"text/javascript" 类型的文件。

多币种会计功能

它们也可以不用于多币种会计,在这种情况下,账户始终使用基本货币。

budgetBalanceCurrency(account, startDate, endDate, extraParam)

当前行账户货币余额。

budgetOpeningCurrency(account, startDate, endDate, extraParam)

期初账户货币余额。

budgetTotalCurrency(account, startDate, endDate, extraParam)


用户定义的功能

用户可以使用JavaScript语言定义个人功能,然后再公式中调用它们。
可以定义以下功能:

  • 直接在公式中

  • 在JavaScript编码的附件中;此附件必须具有"_budget.js"名称作为行id

  • 在文档表的文本中,需要包含在Include命令中

function Taxcalculation(profit)
{
   var percentage = 10;
   if (profit > 50000)
      percentage = 10;
   else if (profit > 100000)
      percentage =20;
   return profit * percentage / 100;
}

 

 

This documentation is outdated

The most complete and up-to-date documentation is the one of Banana Accounting Plus: Try it now

分享这篇文章: Twitter | Facebook | LinkedIn | Email