看啥推荐读物
专栏名称: 涎涎
Github: https://github...
目录
相关文章推荐
今天看啥  ›  专栏  ›  涎涎

金蝶云苍穹饼状图样例

涎涎  · 简书  ·  · 2020-03-27 06:00

导读

以下博文请本科以下的同学在家长陪同下阅读,还没在一线买房的同学请买了房再来阅读,还没女票的同学请找到女票再来观看,谢谢!如果你还真的照做了那你就真的信了我的邪!!!

  1. 新建空白页面动态表单

  2. 在其添加柱状图,设置显示标题显示图例且设置宽高为600*400后保存

  1. 编码
package kd.bos.card.plugin;

import java.util.ArrayList;
import java.util.EventObject;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import kd.bos.form.chart.ItemValue;
import kd.bos.form.chart.Label;
import kd.bos.form.chart.PieChart;
import kd.bos.form.chart.PieSeries;
import kd.bos.form.chart.Position;
import kd.bos.form.plugin.AbstractFormPlugin;

/**
 * <p>Title: </p>
 * <p>
 *    Description:
 * </p>
 * <p>Copyright: Copyright (c) 2020</p>
 * @author xx
 * @date 2020年3月11日
 * @version 1.0
 */
public class PieChartPlugin extends AbstractFormPlugin {

    /**
     * <p>Title: </p>
     * <p>
     *    Description:
     *    用于存储用例颜色
     * </p>
     * <p>Copyright: Copyright (c) 2020</p>
     * @author xx
     * @date 2020年3月11日
     * @param param the bare_field_name
     * @param e
     * @see kd.bos.entity.datamodel.events.IDataModelListener#afterCreateNewData(java.util.EventObject)
     * @version 1.0
     */
    @Override
    public void afterCreateNewData(EventObject e) {
        // TODO Auto-generated method stub
        super.afterCreateNewData(e);
        this.drawChart();

    }

    /**
     * void</br>
     * 
     * <p>Title: </p>
     * <p>
     *    Description:
     * </p>
     * <p>Copyright: Copyright (c) 2020</p>
     * @author xx
     * @date 2020年3月11日
     * @param param the bare_field_name
     * @return the bare_field_name
     * see_to_overridden
     * @version 1.0
     */
    private void drawChart() {
        // TODO Auto-generated method stub
        // 获得饼图控件
        PieChart pieChart = this.getControl("piechartap");
        pieChart.clearData();
        pieChart.setShowTooltip(true);
        pieChart.setMargin(Position.right, "80");
        // 获取需要展示的学校
        List<String> schools = this.getSchools();
        Map<String, ItemValue[]> itemValueMap = this.getProfitData02(schools);
        int schoolsSzie = schools.size();
        int ssIndex = 0;

        String[] percent = this.getPercent(schoolsSzie); // 获取每个学校在图中所占大小比率

        // 遍历得到itemValueMap 将每组数据画一个圆环
        for (String key : itemValueMap.keySet()) {
            System.out.println(key);
            PieSeries series = pieChart.createPieSeries(key);
            series.setRadius(percent[ssIndex++], percent[ssIndex++]); // 设置环的大小

            series = this.setSeriesData(series, itemValueMap.get(key));
            System.out.println(ssIndex);

        }

        // pieChart.setShowTooltip(true);
        pieChart.setShowLegend(true);
        // 设置图例位置
        pieChart.setLegendPropValue("orient", "vertical");
        pieChart.setLegendPropValue("x", "right");
        // pieChart.setLegendPropValue("top", "0");
        // pieChart.setLegendPropValue("itemWidth", 30);
        // pieChart.setLegendPropValue("itemHeight", 30);
    }

    /**
     * List<String></br>
     * 
     * <p>Title: </p>
     * <p>
     *    Description:
     *    获取需要展示的学校
     * </p>
     * <p>Copyright: Copyright (c) 2020</p>
     * @author xx
     * @date 2020年3月11日
     * @param param the bare_field_name
     * @return the bare_field_name
     * @return
     * @version 1.0
     */
    private List<String> getSchools() {
        // TODO Auto-generated method stub
        List<String> schools = new ArrayList<>();
        schools.add("A学校");
        schools.add("B学校");
        schools.add("C学校");
        return schools;
    }

    /**
     * PieSeries</br>
     * 
     * <p>Title: </p>
     * <p>
     *    Description:
     * </p>
     * <p>Copyright: Copyright (c) 2020</p>
     * @author xx
     * @date 2020年3月11日
     * @param param the bare_field_name
     * @return the bare_field_name
     * @param series
     * @param items
     * @return
     * @version 1.0
     */
    private PieSeries setSeriesData(PieSeries series, ItemValue[] items) {

        // 将数据加到饼图
        series.setData(items);
        // 设置圆中间数
        // pieChart.setName(new LocaleString("¥"+555));

        // 设置label类型
        Label label = new Label();
        // label.setBackgroundColor("#0000FF");
        label.setShow(true);
        label.setFontSize("16");
        label.setFormatter("{a}:{b}");
        // 设置位置为inside
        label.setPosition(Position.inside);
        series.setLabel(label);

        // 设置线类型
        Map<String, Map<String, Boolean>> map02 = new HashMap<String, Map<String, Boolean>>();
        Map<String, Boolean> normalMap02 = new HashMap<String, Boolean>();
        map02.put("normal", normalMap02);
        normalMap02.put("show", Boolean.FALSE);
        series.setPropValue("labelLine", map02);

        Object[] points01 = new Object[] { "50%", "50%" };
        // 设置饼图圆心
        series.setPropValue("center", points01);
        return series;
    }

    /**
     * Map<String,ItemValue[]></br>
     * 
     * <p>Title: </p>
     * <p>
     *    Description:
     *   String:物料名称 ItemValue[]:长宽高数据
     * </p>
     * <p>Copyright: Copyright (c) 2020</p>
     * @author xx
     * @date 2020年3月11日
     * @param param the bare_field_name
     * @return the bare_field_name
     * @param schools
     * @return
     * see_to_overridden
     * @version 1.0
     */
    private Map<String, ItemValue[]> getProfitData02(List<String> schools) {

        Map<String, ItemValue[]> resMap = new HashMap<>();

        int schoolsSize = schools.size();
        Map<String, String> cityColor = this.getCityColor(); // 获取身份和颜色的对应值
        ItemValue[] itemValues01 = new ItemValue[3]; // 环中每个元素的值
        itemValues01[0] = new ItemValue("江苏", 120, cityColor.get("江苏"));
        itemValues01[1] = new ItemValue("北京", 250, cityColor.get("北京"));
        itemValues01[2] = new ItemValue("江西", 190, cityColor.get("江西"));
        resMap.put(schools.get(0), itemValues01);

        ItemValue[] itemValues02 = new ItemValue[4]; // 环中每个元素的值
        itemValues02[0] = new ItemValue("山东", 350, cityColor.get("山东"));
        itemValues02[1] = new ItemValue("云南", 420, cityColor.get("云南"));
        itemValues02[2] = new ItemValue("湖南", 446, cityColor.get("湖南"));
        itemValues02[3] = new ItemValue("江西", 140, cityColor.get("江西"));
        resMap.put(schools.get(1), itemValues02);

        ItemValue[] itemValues03 = new ItemValue[5]; // 环中每个元素的值
        itemValues03[0] = new ItemValue("湖南", 170, cityColor.get("湖南"));
        itemValues03[1] = new ItemValue("湖北", 660, cityColor.get("湖北"));
        itemValues03[2] = new ItemValue("广东", 256, cityColor.get("广东"));
        itemValues03[3] = new ItemValue("浙江", 333, cityColor.get("浙江"));
        itemValues03[4] = new ItemValue("四川", 444, cityColor.get("四川"));
        resMap.put(schools.get(2), itemValues03);

        return resMap;

    }

    /**
     * String[]</br>
     * 
     * <p>Title: </p>
     * <p>
     *    Description:
     *    根据学校的数据来分割图形
     * </p>
     * <p>Copyright: Copyright (c) 2020</p>
     * @author xx
     * @date 2020年3月11日
     * @param param the bare_field_name
     * @return the bare_field_name
     * @param itemValueMapSzie 学校的数目
     * @return
     * see_to_overridden
     * @version 1.0
     */
    private String[] getPercent(int itemValueMapSzie) {

        int rangeNum = (int) (80 / itemValueMapSzie);
        int temp = 0;
        String per[] = new String[itemValueMapSzie * 2];
        for (int i = 0; i < itemValueMapSzie * 2; i++) {
            per[i] = temp + "%";
            temp += rangeNum;
            i++;
            per[i] = temp + "%";
            temp += 5;
        }
        return per;

    }

    // private String[] color = { "#6112e4", "#0a35b0", "#77b00a", "#ece917",
    // "#ecb217", "#ec6c17", "#df7ee0", "#915dc2",
    // "#7ecfe0", "#06090e", "#e917ec" ,"#5F9EA0","#008B8B","#8FBC8F"};
    /**
     * Map<String,String></br>
     * 
     * <p>Title: </p>
     * <p>
     *    Description:
     *    城市和颜色的对应表
     * </p>
     * <p>Copyright: Copyright (c) 2020</p>
     * @author xx
     * @date 2020年3月11日
     * @param param the bare_field_name
     * @return the bare_field_name
     * @return
     * @version 1.0
     */
    private Map<String, String> getCityColor() {
        Map<String, String> cityColor = new HashMap<>();
        cityColor.put("江苏", "#6112e4");
        cityColor.put("北京", "#0a35b0");
        cityColor.put("江西", "#77b00a");
        cityColor.put("山东", "#ece917");
        cityColor.put("云南", "#ecb217");
        cityColor.put("湖南", "#ec6c17");
        cityColor.put("湖北", "#df7ee0");
        cityColor.put("广东", "#915dc2");
        cityColor.put("浙江", "#7ecfe0");
        cityColor.put("四川", "#06090e");
        return cityColor;
    }
}
  1. 重启服务器后注册插件预览测试,如下图所示测试成功

以上就是我关于 金蝶云苍穹饼状图样例 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。


分割线


博主为咯学编程:父母不同意学编程,现已断绝关系;恋人不同意学编程,现已分手;亲戚不同意学编程,现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏,金额不限。。。




原文地址:访问原文地址
快照地址: 访问文章快照