Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Filename:ファイル名:Room list.xfd
Levelレベル:Medium
XML from report:レポートから XML:Room -> Room list -> With area sums
XML sample file:XMLサンプルファイル:xml/rooms.xml
Key conceptsキーコンセプト:Repeating table, key/index

This is a simple list of all rooms. It has a repeating table (see 3.6) for room that was created by just dragging the <room> XML node from the data source pane (3) from これは全部屋のシンプルなリストです。
これは、drofus-xml/room-container into the document.The “hard” part of this report is the third column that shows the top function name (department) in which this room is placed. The header field for this column uses the top <level> attribute description which contains the description of this function level. This uses the following expressionのデータソースペイン(3)から<room> XMLノードをドキュメント(Global XSLT window) にドラッグするだけで、
作成された部屋の繰り返しテーブル(3.6参照)を持っています。

このレポートの "hard" な部分は、この部屋が置かれているトップ機能名 (デパートメント/部門)を示す3列目です。
この列のヘッダ・フィールドは、この機能レベルの説明を含む top <level>/トップ <レベル> 属性の説明を使用します。これは以下の式を使用します。

/drofus-xml/level[1]/@description

This simply goes to the first level node in the document and gets the @description attribute.

To get the column content we have to look in the <level> hierarchy which represents the functional structure. In this we will find all the same rooms as in the <room-container> but only the rooms that has a @ref attribute that refers to the これは単純にドキュメントの最初のレベルのノードに行き、@description属性を取得します。

列の内容を取得するには、機能的な構造を表す<level>階層を見る必要があります。この場合、<room-container>と同じ部屋はすべて見つかりますが、
room-container/room/@id attribute. To be able to reference this room we need an index. To create this, paste the following code in to the Review属性を参照する@ref属性を持つ部屋のみが見つかります。この部屋を参照できるようにするには、インデックスが必要です。
これを作成するには、Review (レビュー)->Global XSLT window .(Global XSLTウィンドウ) に以下のコードを貼り付けます。

<xsl:key match="room" name="room-ref-key" use="@ref"/>

This will index all <room> nodes based on the ref attribute. We can then use this to look up the same room as we are currently processing by doingこれにより、ref属性に基づいてすべての<room>ノードのインデックスが作成されます。これを利用して、現在処理中の部屋と同じ部屋を検索することができます。

key('room-ref-key', @id)

Because we also want the top level above this room the complete expression for the field is:この部屋の上のトップレベルも必要なので、フィールドの完全な式は次のようになります:

key('room-ref-key',@id)/ancestor::level[last()]/@name

This looks up the room in the level tree, gets all the level nodes above it, picks the last one and the gets the name attribute, phui...

 これは、レベルツリーで部屋を検索し、その上にあるすべてのレベルノードを取得し、最後のノードを選んでname属性を取得します。