图表篇——Xml To Chart (饼图3D)
前言
一个实现Xml To Chart的图表引擎,通过Xml配置就能够呈现相应的图表。而且能够方便集成到所需的软件系统,例如,MyReport报表引擎
效果图
XML定义说明
<!-- 图表根节点。type属性:图表类型 -->
<ChartSettings type="Pie3D">
<!-- 名称,不影响报表显示 -->
<Name>饼图3D</Name>
<!-- 宽度 -->
<Width>400</Width>
<!-- 高度 -->
<Height>300</Height>
<!-- 左边距 -->
<PaddingLeft>8</PaddingLeft>
<!-- 右边距 -->
<PaddingRight>8</PaddingRight>
<!-- 上边距 -->
<PaddingTop>8</PaddingTop>
<!-- 下边距 -->
<PaddingBottom>8</PaddingBottom>
<!-- 内部子元件间距 -->
<Gap>2</Gap>
<!-- 前背景色 -->
<BeginBackgroundColor>#ffffff</BeginBackgroundColor>
<!-- 后背景色 -->
<EndBackgroundColor>#f1f1f1</EndBackgroundColor>
<!-- 边框颜色 -->
<BorderColor>#696969</BorderColor>
<!-- 显示标题 -->
<TitleVisible>true</TitleVisible>
<!-- 标题内容 -->
<Title>饼图3D主标题</Title>
<!-- 标题文本颜色 -->
<TitleTextColor>#000000</TitleTextColor>
<!-- 标题字体大小 -->
<TitleFontSize>16</TitleFontSize>
<!-- 标题字体加粗 -->
<TitleFontBold>true</TitleFontBold>
<!-- 显示副标题 -->
<SubtitleVisible>true</SubtitleVisible>
<!-- 副标题内容 -->
<Subtitle>副标题</Subtitle>
<!-- 副标题文本颜色 -->
<SubtitleTextColor>#000000</SubtitleTextColor>
<!-- 副标题字体大小 -->
<SubtitleFontSize>12</SubtitleFontSize>
<!-- 副标题字体加粗 -->
<SubtitleFontBold>false</SubtitleFontBold>
<!-- 设置 -->
<Settings>
<!-- 纵表变横表:数据行数等于KeyField所在的序列Value的个数 -->
<Setting name="KeyField">ID</Setting>
<!-- 纵表变横表:把序列组成横表,列名用','分割 -->
<Setting name="Fields">Name, Value</Setting>
<!-- 标签栏 -->
<!-- 显示标签栏 -->
<Setting name="LabelVisible">true</Setting>
<!-- 标签文本颜色 -->
<Setting name="LabelTextColor">#000000</Setting>
<!-- 标签题字体大小 -->
<Setting name="LabelFontSize">10</Setting>
<!-- 标签题字体加粗 -->
<Setting name="LabelFontBold">false</Setting>
<!-- 标签宽度 -->
<Setting name="LabelWidth">120</Setting>
<!-- 标签间距 -->
<Setting name="LabelGap">2</Setting>
<!-- 标签布局列数 -->
<Setting name="LabelColumn">3</Setting>
<!-- 标签内容表达式 -->
<Setting name="LabelExpression"><![CDATA[=Concat(Fields!Name.Value,Str(:),Fields!Value.Value)]]></Setting>
<!-- 饼图 -->
<!-- 饼图半径 -->
<Setting name="PieRadius">140</Setting>
<!-- 饼图Y轴比例:饼图Y轴半径 = PieRadius * PieYScale -->
<Setting name="PieYScale">0.5</Setting>
<!-- 饼图高度 -->
<Setting name="PieHeight">20</Setting>
<!-- 饼图边框宽度 -->
<Setting name="PieBorderThickness">1</Setting>
<!-- 饼图边框透明度 -->
<Setting name="PieBorderAlpha">0.4</Setting>
<!-- 饼图填充透明度 -->
<Setting name="PieFillAlpha">0.7</Setting>
<!-- 饼图角度值表达式 -->
<Setting name="PieValueExpression"><![CDATA[=Fields!Value.Value/Sum(Fields!Value.Value)]]></Setting>
<!-- 显示饼图标签 -->
<Setting name="PieLabelVisible">true</Setting>
<!-- 饼图标签文本颜色 -->
<Setting name="PieLabelTextColor">#000000</Setting>
<!-- 饼图标签题字体大小 -->
<Setting name="PieLabelFontSize">11</Setting>
<!-- 饼图标签题字体加粗 -->
<Setting name="PieLabelFontBold">false</Setting>
<!-- 饼图标签宽度 -->
<Setting name="PieLabelWidth">120</Setting>
<!-- 饼图标签与饼图的距离比例 -->
<Setting name="PieLabelDistanceScale">1.5</Setting>
<!-- 饼图标签内容表达式 -->
<Setting name="PieLabelExpression"><![CDATA[=Fields!Name.Value]]></Setting>
</Settings>
<!-- 图表数据源 -->
<DataSource>
<!-- 数据序列集合 -->
<Serieses>
<!-- 数据序列。name属性:序列名称;Value子节点:序列值 -->
<Series name="ID">
<Value>1</Value>
<Value>2</Value>
<Value>3</Value>
<Value>4</Value>
<Value>5</Value>
<Value>6</Value>
</Series>
<!-- 数据序列。name属性:序列名称;Value子节点:序列值 -->
<Series name="Name">
<Value>名称111</Value>
<Value>名称222</Value>
<Value>名称333</Value>
<Value>名称444</Value>
<Value>名称555</Value>
<Value>名称666</Value>
</Series>
<!-- 数据序列。name属性:序列名称;Value子节点:序列值 -->
<Series name="Value">
<Value>10.5</Value>
<Value>30</Value>
<Value>20.5</Value>
<Value>16</Value>
<Value>10.5</Value>
<Value>10.5</Value>
</Series>
</Serieses>
</DataSource>
</ChartSettings>