计算COGS的毛利润率和XBRL的销售收入

时间:2013-12-01 17:51:29

标签: xbrl

首先,我要感谢您花时间阅读本文。

我正在使用Altova Stylevision创建XBRL文档。我已正确引入XBRL​​分类标准等。我正在创建一些饼图来显示1,三家公司的销售收入和每家公司持有的全部销售收入的百分比。我的毛利率也在做同样的事情。

我的COGS帐户是400020,我的销售收入帐户是800000。

以下代码用于分解我正在比较的三家公司:

for $i in distinct-values($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail/gl-cor:identifierReference/gl-cor:identifierCode) return $i

以下代码计算销售收入

sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount)

以下代码计算每家公司的总销售收入百分比

round-half-to-even(sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/
gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' and  gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount) 

div sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000'  ]/gl-cor:amount)
* 100, 1)

以下代码计算毛利润

sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount)
-sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='400020' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount)

代码基本上是我当前每家公司的销售收入帐户的总和 - 当前时间每家公司的销售成本帐户总和。

上面的所有代码都可以使用,对我来说!

当我去计算毛利润时,我的脑袋会爆炸,哈哈。我以为我可以做类似于总销售收入代码的百分比,但我似乎无法得到它。

这是我的代码,但没有正确计算毛利百分比

round-half-to-even(sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount)
-sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='400020' and gl-cor:identifierReference/gl-cor:identifierCode=current() ]/gl-cor:amount))

div sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='800000' ]/gl-cor:amount)
- sum($XBRL/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:entryHeader/gl-cor:entryDetail[gl-cor:account/gl-cor:accountMainID='400020' ]/gl-cor:amount) * 100, 1

我认为问题是因为我正在划分我的收入帐户 - COGS帐户的总和,但div标签只在声明的收入部分之前。但是,无论我如何尝试编写语句,我都会收到一个错误,除非我这样输入,否则它甚至不会返回结果。它输出的结果是每个公司的十万分之一和百分之一的1。显然,它应该只为每家公司输出一个百分比,总共三个百分点。

我不确定下一步该尝试什么,我真的希望它只是一个语法错误,但任何语法帮助,或重写语句非常感谢!

谢谢, 乔尔

1 个答案:

答案 0 :(得分:0)

在XPath表达式的谓词中,您应该使用变量= $ i而不是= current()来与for循环中的实际公司进行比较。

希望这有帮助。