import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; public class ChartsXml { /** * @todo 構建pie圖 適用於 Pie3D.swf, Pie2D.swf * @param dataSetList List 裏面放List get(0) label get(1) value get(2) id * 第一列對應label 第二列取值 * @param caption * 標題 * @param subcaption * 副標題 * @param isLink * 是否增長連接 是則調用外部JavaScript:myJS(a,b,c). a:category; b:seriesName; * c:datavalue; myJS('','1級','400') * @return */ // dataSetList 裏面放了list(0) list(1) public static String buildPieXml(List dataSetList, String caption, String subcaption, boolean isLink) { StringBuffer xmlData = new StringBuffer(); // 數據頭 xmlData.append("<chart baseFont='宋體' baseFontSize='13' unescapeLinks='0' caption='" + caption+"' subcaption='"+subcaption + "' bgColor='FFFFFF' bgAlpha='9' formatNumberScale='0' enableSmartLabels='1' enableRotation='0' bgRatio='0,100' bgAngle='360' showBorder='0' startingAngle='300' legendBorderAlpha ='0' legendShadow ='0' >"); for (int i = 0; i < dataSetList.size(); i++) { List list = (List) dataSetList.get(i);//放了三個數據 String link = ""; if (isLink){ // link 是否加上點擊觸發js函數 link = " link=\\\"JavaScript:myJS('" + list.get(0) + "','" + list.get(1) + "', '" + list.get(2) + "');\\\" "; } // 把小的list數據拿出來拼成set元素 xmlData.append("<set label='" + list.get(0) + "' value='" + list.get(1) + "' " + link + "/>"); } xmlData.append("<styles><definition><style name='CaptionFont' type='font' size='12'/></definition><application><apply toObject='CAPTION' styles='CaptionFont' /></application></styles>"); xmlData.append("</chart>"); return xmlData.toString(); } public static String buildXml(List dataSetList, String caption, String subcaption,String xAxisName,String yAxisName, boolean isLink) { StringBuffer xmlData = new StringBuffer(); xmlData.append("<chart baseFont='宋體' showValues='0' baseFontSize='13' unescapeLinks='0' caption='" + caption+"' subcaption='"+subcaption + "' xAxisName='" + xAxisName + "' yAxisName= '" + yAxisName + "' bgColor='FFFFFF' bgAlpha='9' formatNumberScale='0' enableSmartLabels='1' enableRotation='0' bgRatio='0,100' bgAngle='360' showBorder='0' startingAngle='300' legendBorderAlpha ='0' legendShadow ='0' >"); for (int i = 0; i < dataSetList.size(); i++) { List list = (List) dataSetList.get(i); String link = ""; if (isLink){ link = " link=\\\"JavaScript:myJS('" + list.get(0) + "','" + list.get(2) + "', '" + list.get(1) + "');\\\" "; } xmlData.append("<set label='" + list.get(0) + "' value='" + list.get(1) + "' " + link + "/>"); } xmlData.append("<styles><definition><style name='CaptionFont' type='font' size='12'/></definition><application><apply toObject='CAPTION' styles='CaptionFont' /></application></styles>"); xmlData.append("</chart>"); return xmlData.toString(); } }