在此文中
插入公式的可能性只有在Banana财务会计+ 的高级计划中才有。现在就升级至最新版本!
公式列允许您输入计算公式。因此,可以基于相同预算的其它值来计算预估的金额 (请参见公式示例)。
- 指示出商品成本占销售额的百分比。
- 根据增长百分比增加销售预算。
- 到年底,根据所投资的价值计算折旧。
- 每季度根据实际使用情况 (天/ 365) 计算银行账户的利息。
- 每月,根据实际利润计算利润的税金。
正如表格Budget的文档中所解释的,你也可以使用Javascript公式。
- 在公式开始列中
- 在描述栏中,对于重复的行。
如果在公式列中输入了数值,那么金额列是由程序根据该公式计算的。
示例文件
有关公式的示例,请参考以下的说明:
Javascript中的计算公式
- 该公式必须使用Javascript语言表示 (不要与Java语言混淆)。
- 如果有公式 (或任何文本),则根据公式结果设置金额列中的值。
- 您可以使用Javascript语言的所有功能,以及Banana软件提供的API功能。
小数点分隔符
作为小数点分隔符,JavaScript仅使用该点"."。
如果使用其他分隔符(用于本地格式数字的分隔符),则该数字可能会被截断。
金额 = 最后一条指令的结果
在Javascript中,分号";" 用于分隔表达式。
如果Javascript公式包含多个用分号 ";"分隔的表达式,则金额列的值将是最后执行的表达式的结果。
- 10*3 //则30 将返回。
- 如果有一系列由分号";"分隔的操作序列,则最后一次操作将继续。
10*3;7; //则7 将返回。 - 如果有返回值,则该值将在返回后继续。
返回 10; // 则10 将返回。
变量
Javascript变量是编程中最强大的元素,因为它们允许您使用名称访问计算机的内存,保存并访问这些数值。
变量在Excel公式中不存在,但是类似于单元格的名称,不同之处在于可以自由分配名称。
通过指出名称,并用等号 (=) 指示来创建变量。
您可以直接在行内定义和使用变量。通过在公式中输入变量的名称,保存的数值将被接管。
在此创建价格变量,并分配值 10。
var price = 10;
或简单地
price = 10;
如下所示,我们创建一个总变量,将价格乘以5归因于该变量。
total = price * 5;
可以重新分配变量的值。
price = 20;
对象
Javascipt 对象是允许您保存多个值的变量,每个值都有一个属性指示。
价格对象如下列所示,以大括号显示。要访问和保存值,请使用方括号或在对象名称后的属性名称中进行指示。
prices = {} prices['car'] = 10; prices.car = 10; prices['computer'] = 20; prices.computer = 20;
数组
Javascript 数组是使用方括号创建的,也可以访问它们。
数组的第一个元素的索引为0。
costs = [1,2,3]; costs[0]=3; result = prices['car'] - costs[0];
重复和变数
有关计算顺序的更多信息,参见财务计划。
- 所有的行(包括为重复创建的行)都按日期排序。如果有相同日期的行,其顺序是它们在表中插入的顺序。
- 排序后,行(包括公式)被重新计算。
- 因此,在公式中,你只能获得到该日期为止的预算数据。
- 变量必须定义在使用该变量的行前有日期的行中。
- 如果预算条目有重复,变量将在每次都被重新分配。
sum=10。 - 如果你想计算总计,而不是计算总计。
- 在最初的一行中,创建一个数值为0的变量。
sum = 0。 - 在重复的那一行中,总和也包括前一个值。
sum = sum + 10;
或使用 "+="。
sum += 10
- 在最初的一行中,创建一个数值为0的变量。
自动变量
- budgetCurrent
该表包含重复创建后的预算行。
这些用于与JRepeatNumber一起记录值。 - DEBUG 可以是为 "true" 或 “false”的变量。
如果为"true",则在消息中显示所有公式的结果。 - row
是引用当前行的javascript对象。- 可以使用值函数 ("columnNameXml").row.value("date") 返回到发生业务日期来检索单元格的值。
- row.value ("JRepeatNumber")返回重复的进度。
第一次重复是0。
- _totalPrice
这是数量列的值乘以单价。
它相当于公式 "row.value('数量')*row.value('单价')"。
预算功能
除了会计类API中定义的预算API外,还有一些特定功能。
BudgetGetPeriod(tDate, period)
此功能与重复使用功能结合使用。
当定义重复时,建议参考计算期间而不是精确的日期。
- 日期参数
计算期间的日期,通常是记录行的日期。 - 期间参数
缩写- 当前的时期:
- "MC" 代表当前月
- "QC" 代表当前季度
- "YC" 代表当前年
- 对于上一时期:
- "MP" 代表上一时期的月份
- "QP" 代表上一时期的季度
- "YP" 代表上一时期的年份
- 当前的时期:
- 从9.1版本开始,您也可以使用:
- "DC "当天
- "DP "前一天
- "WC "本周
- "WP "前一周
- "BC "当前2个月
- "BP "前两个月
- "SC "当前六个月
- "SP "前六个月
- 返回值
由两个日期组成的对象- 开始日期
- 结束日期
// 示例 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"代替开始日期的参数
- 如果将期间指定为日期,则使用当前录入的日期。
- 只有在结束日期早于行日期时使用结束日期才有意义。
如果它等于或更高,则没有效果,因为它们尚未被处理,所以当前行之后的值尚不可用。 - 如果发生业务行的日期是4月15日:
- budgetBalance("1000","MP") 返回3月底1000账户的余额。
- budgetBalance("1000","MC") 返回当前时间的余额,它与 budgetBalance("1000")相同。
- budgetTotal("1000","QP") 返回上一季度的总变动。
- budgetTotal("1000","QC") 返回上一季度截至当前日期的变动总额。
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)
当前行账户货币余额。
budgetExchangeDifference (account, [date, exchangeRate])
budgetOpeningCurrency(account, startDate, endDate, extraParam)
期初账户的货币余额。
budgetTotalCurrency(account, startDate, endDate, extraParam)
从9.01版本开始,还包括以下功能:budgetCreditCurrency, budgetDebitCurrency.
用户定义的功能
用户可以使用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; }