加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

amChart实现flash报表

发布时间:2020-12-15 06:57:58 所属栏目:百科 来源:网络整理
导读:? ? ? ?项目上需要做flash报表,查看了一下amchart,发现这个比较简单(可能是由于没有接触过其他的),总结下来,主要是两方面的配置,一个是setting_file这个属性的设置,用于加载flash报表的样式,也就是通常的什么颜色,形状之类的配置,可以动态改变,一边

? ? ? ?项目上需要做flash报表,查看了一下amchart,发现这个比较简单(可能是由于没有接触过其他的),总结下来,主要是两方面的配置,一个是setting_file这个属性的设置,用于加载flash报表的样式,也就是通常的什么颜色,形状之类的配置,可以动态改变,一边为直接写死为 XXX.xml文件,其实只要返回的是xml格式的就是行了,不用实际存在这个文件,所以可以把setting_file属性设置成一个url请求,例如: ?setting_file='XXAction?query.do' ?,只要返回的是一个文件包含的内容符合它的配置文件的格式就行了。同样的。对于数据的请求也是一样的,只要请求返回一个满足数据文件格式的内容就行了。不一定存在数据文件。

例如

数据jsp文件代码:

<%@page import="java.util.*,com.trishield.prisonplat.prisoner.entity.PrisonerCount,com.trishield.prisonplat.prisoner.service.IPrisonerService" %>
<%@page contentType="text/xml; charset=UTF-8"%>
<pie>
<%
// ? ? ?List countList=(List)request.getAttribute("pieDataList");
? ? ?String queryType=(String)request.getAttribute("queryType");
? ? int totalOnreg=10;
? ? int totalInhospital=10;
? ? int totalControl=10;
? ? int totalOnHold=10;
? ? if("status".equals(queryType)){
? ? ? ? List<PrisonerCount> countList=(List<PrisonerCount>)request.getAttribute("pieDataList");
? ? for(PrisonerCount ct:countList){
? ? totalOnreg+=ct.getOnRegCount();
? ? totalInhospital+=ct.getInHospitalCount();
? ? totalControl+=ct.getControlCount();
? ? totalOnHold+=ct.getOnHoldCount();
? ? }
? ? ? ? %>
? ? ? ? <slice title="在押" description="点击查看趋势图"><%=totalOnHold%></slice>
? ? <slice title="住院" description="点击查看趋势图"><%=totalInhospital%></slice>
? ? <slice title="严管" description="点击查看趋势图"><%=totalControl%></slice>
? ? <slice title="在册" description="点击查看趋势图"><%=totalOnreg%></slice>
? ? ? ? <%
? ? }else if("controlLevel".equals(queryType)){
? ? List prisonerList=(List)request.getAttribute("pieDataList");
? ? for(int i=0;i<prisonerList.size();i++){
? ? Object[] valueArray=(Object[])prisonerList.get(i);
? ? %>
? ? ?<slice title="<%=valueArray[1]%>"><%=valueArray[0]%></slice>
? ? <%
? ? }
? ? }
? ? %>
</pie>?
? ?
? ?配置文件:


<% ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
String lable=(String)request.getAttribute("label");
StringBuffer sql=new StringBuffer();
sql.append("<?xml version='1.0' encoding='UTF-8'?>");
sql.append("<settings>");
sql.append("<data_type>xml</data_type>");
sql.append("<skip_rows>1</skip_rows>");
sql.append("<pie>");
sql.append("<x></x>");
sql.append("<y></y>");
sql.append("<radius>90</radius>");
sql.append("<inner_radius>10</inner_radius>");
sql.append("<height>10</height>");
sql.append("<angle>0</angle>");
sql.append("<start_angle></start_angle>");
sql.append("<outline_color></outline_color>");
sql.append("<outline_alpha></outline_alpha>");
sql.append("<base_color></base_color>");
sql.append("<brightness_step></brightness_step>");
sql.append("<colors>");
sql.append("[#8E0E1B,#0E528F,#7D9308,#860D6C,#FFCA21,#E97A04,#FF9E01]");
sql.append("</colors>"); ? ? ?
sql.append("<link_target>_parent</link_target>");
sql.append("<alpha></alpha>");
sql.append("<hover_brightness></hover_brightness>");
sql.append("<gradient></gradient>");
sql.append("<gradient_ratio></gradient_ratio>");
sql.append("</pie>");
sql.append("<animation>");
sql.append("<start_time>3</start_time>");
sql.append("<start_effect>regular</start_effect>");
sql.append("<sequenced>true</sequenced>");
sql.append("<pull_out_on_click></pull_out_on_click>");
sql.append("<pull_out_time>0.5</pull_out_time>");
sql.append("<pull_out_effect>strong</pull_out_effect>");
sql.append("</animation>");
sql.append("<data_labels>");
sql.append("<radius></radius>");
sql.append("<text_color></text_color>");
sql.append("<text_size>10</text_size>");
sql.append("<max_width></max_width>");
sql.append("<show>");
sql.append("<![CDATA[{title}: {percents}%]]>");
sql.append("</show>");
sql.append("<show_lines></show_lines>");
sql.append("<line_color></line_color>");
sql.append("<line_alpha>100</line_alpha> ");
sql.append("<hide_labels_percent></hide_labels_percent>");
sql.append("<avoid_overlapping></avoid_overlapping>");?
sql.append("</data_labels>");
sql.append("<balloon>");
sql.append("<enabled></enabled>");
sql.append("<color></color>");
sql.append("<alpha>80</alpha>");
sql.append("</balloon>");
sql.append("<legend>");
sql.append("<enabled></enabled>");
sql.append("<x></x>");
sql.append("<y></y>");
sql.append("<width>280</width>");
sql.append("<color></color>");
sql.append("<max_columns></max_columns>");
sql.append("<alpha></alpha>");
sql.append("<border_color></border_color>");
sql.append("<border_alpha>20</border_alpha>");
sql.append("<text_color></text_color>");
sql.append("<text_size></text_size>");
sql.append("<spacing>9</spacing>");
sql.append("<margins>5</margins>");
sql.append("<reverse_order></reverse_order>");
sql.append("<align>center</align>");
sql.append("</legend>");
sql.append("<error_messages>");
sql.append("<enabled></enabled>");
sql.append("<x></x>");
sql.append("<y></y>");
sql.append("<color></color>");
sql.append("<alpha></alpha>");
sql.append("<text_color></text_color>");
sql.append("<text_size>20</text_size>");
sql.append("</error_messages>");
sql.append("<labels>");
sql.append("<label lid='0'>");
sql.append("<x>0</x>");
sql.append("<y>0</y>");
sql.append("<rotate>false</rotate>");
sql.append("<width></width>");
sql.append("<align>center</align>");
sql.append("<text_color></text_color>");
sql.append("<text_size>12</text_size>");
sql.append("<text>");
sql.append("<![CDATA[<b>");
sql.append(lable);
sql.append("</b>]]>");
sql.append("</text>");
sql.append("</label>");
sql.append("</labels>");
sql.append("</settings>");
response.getWriter().write(sql.toString());

%>




这样写的话,就可以根据业务数据的需求,动态的改变flash报表了。和js交互数据也就那几个方法(flashMovie.setData...详情参见API吧) ,总结下来一句话:很好,很强大

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读