1

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

我正在使用 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 标签仅位于报表的收入部分的前面。但是,无论我如何尝试编写语句,我都会收到一个错误,除非我以这种方式键入它,否则它甚至不会返回结果。它输出的结果是每家公司的 10 万和 1 的第二个百分比。显然,它应该只为每个公司输出一个百分比,总共三个百分比。

我不太确定接下来要尝试什么,我真的希望这只是一个语法错误,但非常感谢任何有关语法或重写语句的帮助!

谢谢,乔尔

4

1 回答 1

0

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

希望这可以帮助。

于 2013-12-02T21:19:36.237 回答