テンプレートへのチャートの追加
テンプレートにチャートを追加するには、次のステップに従います。
次に、チャートをテンプレートに追加するステップの概要を示します。 これらのステップについては、このセクションで例とともに詳しく説明します。
- テンプレートにダミー・イメージを挿入して、チャートのサイズと位置を定義します。
- ダミー・イメージの代替テキスト・ボックスにチャートの定義を追加します。 チャート定義にはXSLコマンドが必要です。
- 実行時に、「パブリッシャ」はチャート・エンジンをコールして、最終的な出力ドキュメントに挿入されるイメージをレンダリングします。
RTF出力はラスター・イメージに制限されていることに注意してください。 PDFおよびHTML出力では、ラスターおよびベクター・イメージがサポートされています。
サンプル・チャートの追加
この図に従って、サンプル・チャートを追加します。
次に、会社のビジョン別の合計売上を示すXMLデータを示します。
<sales year=2004>
<division>
<name>Groceries</name>
<totalsales>3810</totalsales>
<costofsales>2100</costofsales>
</division>
<division>
<name>Toys</name>
<totalsales>2432</totalsales>
<costofsales>1200</costofsales>
</division>
<division>
<name>Cars</name>
<totalsales>6753</totalsales>
<costofsales>4100</costofsales>
</division>
<division>
<name>Hardware</name>
<totalsales>2543</totalsales>
<costofsales>1400</costofsales>
</division>
<division>
<name>Electronics</name>
<totalsales>5965</totalsales>
<costofsales>3560</costofsales>
</division>
</sales>
この例では、次の棒グラフに示すように、チャートをテンプレートに挿入して縦棒グラフとして表示する方法について説明します。
このチャートの次の属性に注意してください:
-
スタイルは垂直棒グラフです。
-
チャートにはバックグラウンド・グリッドが表示されます。
-
コンポーネントは色付きです。
-
売上合計はY軸ラベルとして表示されます。
-
ディビジョンはX軸ラベルとして表示されます。
-
チャートにはタイトルが付いています。
-
チャートに凡例が表示されます。
これらの各プロパティは、個々のレポートの要件に合わせてカスタマイズできます。
ダミー・イメージの挿入
最初のステップでは、チャートを表示する位置のテンプレートにダミー・イメージを追加します。
イメージ・サイズは、最終文書のチャート・イメージの大きさを定義します。
ノート:
ダミー・イメージは、他の種類のオブジェクトではなく、ピクチャとして挿入する必要があります。次の図は、ダミーのイメージの例を示しています。
繰返しデータに基づいてチャートを出力で繰り返す場合は、他のフォーム・フィールドと同様に、for-eachループ内にイメージを埋め込むことができます。 この例では、XMLファイル内に存在するデータ年ごとにチャートが生成されるように、チャートがsales年グループ内に定義されています。
イメージを右クリックして「画像のフォーマット」パレットを開き、「ウェブ」タブを選択します。 「代替テキスト」エントリ・ボックスを使用して、チャートの特性およびデータ定義を定義するコードを入力します。
代替テキスト・ボックスへのコードの追加
「代替テキスト」ボックスは、コードを含むテキスト・フィールドであり、最終文書でチャートとしてレンダリングされるコンテンツです。
次の図は、「画像の代替テキストの書式設定」ボックスの「パブリッシャ」コードの例を示しています。
「代替テキスト」のコンテンツは、最終ドキュメントにレンダリングされるチャートを表します。 このチャートでは、テキストは次のようになります:
chart:
<Graph graphType = "BAR_VERT_CLUST">
<Title text="Company Sales 2004" visible="true" horizontalAlignment="CENTER"/>
<Y1Title text="Sales in Thousands" visible="true"/>
<O1Title text="Division" visible="true"/>
<LocalGridData colCount="{count(//division)}" rowCount="1">
<RowLabels>
<Label>Total Sales $1000s</Label>
</RowLabels>
<ColLabels>
<xsl:for-each select="//division">
<Label>
<xsl:value-of select="name"/>
</Label>
</xsl:for-each>
</ColLabels>
<DataValues>
<RowData>
<xsl:for-each select="//division">
<Cell>
<xsl:value-of select="totalsales"/>
</Cell>
</xsl:for-each>
</RowData>
</DataValues>
</LocalGridData>
</Graph>
チャート・テキストの最初の要素はチャートである必要があります: 次のコードがチャート・オブジェクトを記述したことをRTFパーサーに通知する要素。
次に、開始<Graph>
タグを示します。 コード全体が<Graph>
要素のタグ内に存在することに注意してください。 この要素には、チャート・タイプを定義する属性があります: graphType
. この属性が宣言されていない場合、デフォルトのチャートは縦棒グラフです。 BI Beansは様々なチャート・タイプをサポートしています。 このセクションでは、さらにいくつかのタイプについて説明します。 完全なリストについては、BI BeansグラフのDTDドキュメントを参照してください。
次のコード・セクションでは、チャート・タイプと属性を定義します:
<Title text="Company Sales 2004" visible="true" horizontalAlignment="CENTER"/>
<Y1Title text="Sales in Thousands" visible="true"/>
<O1Title text="Division" visible="true"/>
これらの値はすべて宣言することも、実行時にXMLデータから値を置換することもできます。 たとえば、次の構文を使用して、XMLタグからチャート・タイトルを取得できます:
<Title text="{CHARTTITLE}" visible="true" horizontalAlighment="CENTER"/>
ここで、"CHARTTITLE"はチャート・タイトルを含むXMLタグ名です。 タグ名は中カッコで囲まれています。
次のセクションでは、列および行のラベルを定義します:
<LocalGridData colCount="{count(//division)}" rowCount="1">
<RowLabels>
<Label>Total Sales $1000s</Label>
</RowLabels>
<ColLabels>
<xsl:for-each select="//division">
<Label>
<xsl:value-of select="name"/>
</Label>
</xsl:for-each>
</ColLabels>
LocalGridData
要素には2つの属性があります: colCount
およびrowCount
。 これらは、実行時に表示される列と行の数を定義します。 この例では、count関数はレンダリングする列の数を計算します:
colCount="{count(//division)}"
rowCount
は1にハードコードされています。 この値は、チャート化するデータのセット数を定義します。 この場合は1です。
次に、行および列のラベルを定義します。 これらは宣言することも、実行時にXMLデータから値を置換することもできます。 行ラベルは、チャートの凡例(つまり、"Total Sales $1000s"で使用されます。
この例の列ラベルはデータから導出されます: 食料品、玩具、車など。 これはfor-eachループを使用して実行します:
<ColLabels>
<xsl:for-each select="//division">
<Label>
<xsl:value-of select="name"/>
</Label>
</xsl:for-each>
</ColLabels>
このコードは、<division>
グループをループし、<name>
要素の値を<Label>
タグに挿入します。 このコードは実行時に次のXMLを生成します:
<ColLabels>
<Label>Groceries</Label>
<Label>Toys</Label>
<Label>Cars</Label>
<Label>Hardware</Label>
<Label>Electronics</Label>
</ColLabels>
次のセクションでは、チャート化する実際のデータ値を定義します:
<DataValues>
<RowData>
<xsl:for-each select="//division">
<Cell>
<xsl:value-of select="totalsales"/>
</Cell>
</xsl:for-each>
</RowData>
</DataValues>
ラベル・セクションと同様に、コードはデータをループして、BI Beansレンダリング・エンジンに渡されるXMLを作成します。 このコードは次のXMLを生成します:
<DataValues>
<RowData>
<Cell>3810</Cell>
<Cell>2432</Cell>
<Cell>6753</Cell>
<Cell>2543</Cell>
<Cell>5965</Cell>
</RowData>
</DataValues>
チャート・サンプルの追加
円グラフのサンプルに従って、円グラフにデータを表示する方法を理解します。
次の図に示すように、このデータを円グラフに表示することもできます。
このチャートを実行時にレンダリングするためにテンプレートに追加されるコードは、次のとおりです:
chart:
<Graph graphType="PIE">
<Title text="Company Sales 2004" visible="true"
horizontalAlignment="CENTER"/>
<LocalGridData rowCount="{count(//division)}" colCount="1">
<RowLabels>
<xsl:for-each select="//division">
<Label>
<xsl:value-of select="name"/>
</Label>
</xsl:for-each>
</RowLabels>
<DataValues>
<xsl:for-each select="//division">
<RowData>
<Cell>
<xsl:value-of select="totalsales"/>
</Cell>
</RowData>
</xsl:for-each>
</DataValues>
</LocalGridData>
</Graph>
横棒グラフのサンプル
この例は、横棒の形式でチャート化された売上合計と売上原価を示しています。 また、売上原価要素(<costofsales>
)のデータがチャートに追加されます。
次のコードは、テンプレートでこのチャートを定義します:
chart:
<Graph graphType = "BAR_HORIZ_CLUST">
<Title text="Company Sales 2004" visible="true" horizontalAlignment="CENTER"/>
<LocalGridData colCount="{count(//division)}" rowCount="2">
<RowLabels>
<Label>Total Sales ('000s)</Label>
<Label>Cost of Sales ('000s)</Label>
</RowLabels>
<ColLabels>
<xsl:for-each select="//division">
<Label><xsl:value-of select="name"/></Label>
</xsl:for-each>
</ColLabels>
<DataValues>
<RowData>
<xsl:for-each select="//division">
<Cell><xsl:value-of select="totalsales"/></Cell>
</xsl:for-each>
</RowData>
<RowData>
<xsl:for-each select="//division">
<Cell><xsl:value-of select="costofsales"/></Cell>
</xsl:for-each>
</RowData>
</DataValues>
</LocalGridData>
</Graph>
2番目のデータ・セットに対応するために、LocalGridData
要素のrowCount
属性は2に設定されます。 また、DataValues
セクションには2つのデータ・セットが定義されています: 1つはTotal Sales、もう1つはCost of Salesです。
チャートの表示形式の変更
BI BeansグラフDTDには、チャートのルック・アンド・フィールを変更するために操作できる属性が多数あります。
たとえば、次の図に示すように、前のチャートを変更してグリッドを削除し、卒業したバックグラウンドを配置し、棒の色とフォントを変更できます:
これをサポートするコードは次のとおりです:
chart:
<Graph graphType = "BAR_HORIZ_CLUST">
<SeriesItems>
<Series id="0" color="#ffcc00"/>
<Series id="1" color="#ff6600"/>
</SeriesItems>
<O1MajorTick visible="false"/>
<X1MajorTick visible="false"/>
<Y1MajorTick visible="false"/>
<Y2MajorTick visible="false"/>
<MarkerText visible="true" markerTextPlace="MTP_CENTER"/>
<PlotArea borderTransparent="true">
<SFX fillType="FT_GRADIENT" gradientDirection="GD_LEFT"
gradientNumPins="300">
<GradientPinStyle pinIndex="1" position="1"
gradientPinLeftColor="#999999"
gradientPinRightColor="#cc6600"/>
</SFX>
</PlotArea>
<Title text="Company Sales 2004" visible="true">
<GraphFont name="Tahoma" bold="false"/>
</Title>
. . .
</Graph>
バーの色は、SeriesItemsセクションで定義されます。 色は、次のように16進数形式で定義されます:
<SeriesItems>
<Series id="0" color="#ffcc00"/>
<Series id="1" color="#ff6600"/>
</SeriesItems>
次のコードでは、チャート・グリッドが非表示になります:
<O1MajorTick visible="false"/>
<X1MajorTick visible="false"/>
<Y1MajorTick visible="false"/>
<Y2MajorTick visible="false"/>
MarkerText
タグは、チャート・バーにデータ値を配置します:
<MarkerText visible="true" markerTextPlace="MTP_CENTER"/>
PlotArea
セクションは、バックグラウンドを定義します。 SFX
要素はグラデーションを設定し、borderTransparent
属性はプロット・ボーダーを非表示にします:
<PlotArea borderTransparent="true">
<SFX fillType="FT_GRADIENT" gradientDirection="GD_LEFT"
gradientNumPins="300">
<GradientPinStyle pinIndex="1" position="1"
gradientPinLeftColor="#999999"
gradientPinRightColor="#cc6600"/>
</SFX>
</PlotArea>
Title text
タグも更新され、新しいフォント・タイプおよびサイズが指定されています:
<Title text="Company Sales 2004" visible="true">
<GraphFont name="Tahoma" bold="false"/>
</Title>