二开案例.表单插件.图表控件

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.表单插件.图表控件

【应用场景】

使用图表控件展示数据。


【案例演示】

采购订单上新增图表控件,展示客户运营数据。


【实现步骤】

<1>编写表单插件,代码如下。

using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
    /// <summary>
    /// 【表单插件】图表控件
    /// </summary>
    [Description("【表单插件】图表控件"), HotUpdate]
    public class ChartFormPlugIn : AbstractDynamicFormPlugIn
    {
        public override void AfterBindData(EventArgs e)
        {
            base.AfterBindData(e);
            BindChart();
        }
        public override void BarItemClick(BarItemClickEventArgs e)
        {
            base.BarItemClick(e);
            if (e.BarItemKey.EqualsIgnoreCase("test"))
            {
                BindChart();
            }
        }
        private void BindChart()
        {
            var chart = this.View.GetControl<ChartControl>("F_Jac_Chart");
            // 设置样式
            chart.SetChartType("5"); // 1-折线图;2-饼状图;3-柱状图;4-透析图;5-柱状图,数据来源参考:Kingdee.BOS.XPF.Component.CtrlProxy.KDChartControlProxy.Style
            chart.SetLegendMaxWidth(400); // 设置系列显示名称的文本最大宽度
            this.View.GetControl("F_Jac_Chart").InvokeControlMethod("setLegendPosition", "top"); // 设置系列显示名称的文本在图标的顶部显示
            chart.SetLegendToolTip("客户运营统计表");
            // 设置系列
            var chartSeries = new Collection<KDChartSeries>();
            #region 系列1
            var ser1 = new KDChartSeries();
            ser1.Name = "NewCustomerQty";
            ser1.DisplayName = "新增客户数量";
            chartSeries.Add(ser1);
            var points1 = new Collection<KDChartSeriesPoint>();
            ser1.Points = points1;
            var datas1 = new Dictionary<string, int>();
            datas1["1月"] = GetRandom(100, 999);
            datas1["2月"] = GetRandom(100, 999);
            datas1["3月"] = GetRandom(100, 999);
            datas1["4月"] = GetRandom(100, 999);
            datas1["5月"] = GetRandom(100, 999);
            datas1["6月"] = GetRandom(100, 999);
            foreach (var data in datas1)
            {
                var point = new KDChartSeriesPoint();
                point.XValue = 1;
                point.YValue = data.Value;
                point.XText = data.Key;
                points1.Add(point);
            }
            #endregion
            #region 系列2
            var ser2 = new KDChartSeries();
            ser2.Name = "CustomerQty";
            ser2.DisplayName = "总客户数量";
            chartSeries.Add(ser2);
            var points2 = new Collection<KDChartSeriesPoint>();
            ser2.Points = points2;
            var datas2 = new Dictionary<string, int>();
            datas2["1月"] = GetRandom(1000, 9999);
            datas2["2月"] = GetRandom(1000, 9999);
            datas2["3月"] = GetRandom(1000, 9999);
            datas2["4月"] = GetRandom(1000, 9999);
            datas2["5月"] = GetRandom(1000, 9999);
            datas2["6月"] = GetRandom(1000, 9999);
            foreach (var data in datas2)
            {
                var point = new KDChartSeriesPoint();
                point.XValue = 1;
                point.YValue = data.Value;
                point.XText = data.Key;
                points2.Add(point);
            }
            #endregion
            chart.SetSeriersPoints(chartSeries);
        }
        private int GetRandom(int minValue, int maxValue)
        {
            return new Random(Guid.NewGuid().GetHashCode()).Next(minValue, maxValue);
        }
    }
}

<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE扩展采购订单,新增页签,新页签上新增一个图表控件,菜单节后新增一个菜单项,注册表单插件,保存元数据,开发完毕。


【功能验证】

<1>登录业务站点,打开采购订单新增界面,即可显示图表数据啦。

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.表单插件.图表控件

【应用场景】使用图表控件展示数据。【案例演示】采购订单上新增图表控件,展示客户运营数据。【实现步骤】<1>编写表单插件,代码如下。usi...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息