3

1 対多の関係を持つXML データ ソースからiReportを使用してレポートを作成する必要があります。

私のメイン テーブルはユーザーのリストであり、このテーブルの各行はロール テーブルの多くの行にマップされます。情報を XML ドキュメントとして取得すると、次の構造になります。

<results>
  <user>
    <name>John Smith</name>
    <id>12345</id>
    <roles>
      <role>
        <name>Reports on Self</name>
        <id>50</id>
      </role>
      <role>
        <name>Reports on Others</name>
        <id>51</id>
      </role>
    </roles>
  </user>
  <user>
    <name>Jane Doe</name>
    <id>54321</id>
    <roles>
      <role>
        <name>Reports on Any</name>
        <id>53</id>
      </role>
      <role>
        <name>Changes to Any</name>
        <id>63</id>
      </role>
    </roles>
  </user>
</results>

私が必要とするのは、結果がそのように表示されることです。サブクエリで同様のことを行う方法に関する情報を見つけましたが、データベースに直接接続していません。XML ドキュメントからレポートを実行する必要があります。

List of Users:
12345       John Smith
            Roles:
               Reports on Self
               Reports on Others

54321       Jane Doe
            Roles:
               Reports on Any
               Changes to Any

これを達成する方法について何かアイデアがあれば教えてください。

4

1 に答える 1

0

残念ながら、XPath は XML 内の要素を照会する場合にのみ役立つため、XPath だけでは要求を実行することはできません。しかし、XSLT のようなものを使用すると、これが可能になります。

上記のファイルを使用して、以下の XSLT を使用します...

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="text"/>
<xsl:template match="/">
    <xsl:text>List of Users:
    </xsl:text>
    <xsl:apply-templates/>
</xsl:template>
<xsl:template match="user">
    <xsl:value-of select="id"/>
    <xsl:text>       </xsl:text>
    <xsl:value-of select="name"/>
    <xsl:text>
    </xsl:text>
    <xsl:apply-templates select="roles"/>
</xsl:template>
<xsl:template match="roles">
    <xsl:text>            Roles:
    </xsl:text>
    <xsl:apply-templates/>
</xsl:template>
<xsl:template match="role">
    <xsl:text>               </xsl:text>
    <xsl:value-of select="name"/>
    <xsl:text>
    </xsl:text>
</xsl:template>
</xsl:stylesheet>

... 次の出力が得られます。

List of Users:
    12345       John Smith
                Roles:
                   Reports on Self
                   Reports on Others
    54321       Jane Doe
                Roles:
                   Reports on Any
                   Changes to Any
于 2012-10-28T23:51:57.487 に答える