Пример #1
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="element"></param>
 /// <param name="config"></param>
 /// <exception cref="NotImplementedException"></exception>
 public FusionChartWrapper(IChartElement element, IChartConfig config) {
     _element = element;
     _config = config??_config;
     _elementName = determineName(_element);
     _eltype = _elementName.To<FusionChartElementType>();
     _charttype = config.Type.To<FusionChartType>();
 }
Пример #2
0
        /// <summary>
        /// Находит все атрибуты по указанному критерию
        /// </summary>
        /// <param name="chartType"></param>
        /// <param name="element"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static IEnumerable <FusionChartAttributeDescriptor> FindAttributes(FusionChartType chartType = FusionChartType.None, FusionChartElementType element = FusionChartElementType.None, string name = null)
        {
            return(Attributes.Values.Where(
                       _ => {
                if (chartType != FusionChartType.None)
                {
                    if (0 == (_.Charts & chartType))
                    {
                        return false;
                    }
                }
                if (element != FusionChartElementType.None)
                {
                    if (_.Element != element)
                    {
                        return false;
                    }
                }
                if (!string.IsNullOrWhiteSpace(name))
                {
                    if (name.ToLower() != _.Name.ToLower())
                    {
                        return false;
                    }
                }

                return true;
            }
                       ));
        }
Пример #3
0
 /// <summary>
 /// Проверяет доступность атрибута для данного элемента в конфигурации
 /// </summary>
 /// <param name="name"></param>
 /// <param name="chartType"></param>
 /// <param name="elementType"></param>
 /// <param name="config"></param>
 /// <returns></returns>
 private static bool IsMatch(string name, FusionChartType chartType, FusionChartElementType elementType = FusionChartElementType.Chart, IChartConfig config = null) {
     var key = (elementType.ToString() + "_" + name).ToLower();
     if (Attributes.ContainsKey(key)) {
         return 0 != (Attributes[key].Charts & chartType);
     }
     //custom attribute
     return true;
 }
Пример #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="element"></param>
 /// <param name="config"></param>
 /// <exception cref="NotImplementedException"></exception>
 public FusionChartWrapper(IChartElement element, IChartConfig config)
 {
     _element     = element;
     _config      = config ?? _config;
     _elementName = determineName(_element);
     _eltype      = _elementName.To <FusionChartElementType>();
     _charttype   = config.Type.To <FusionChartType>();
 }
Пример #5
0
        /// <summary>
        /// Проверяет доступность атрибута для данного элемента в конфигурации
        /// </summary>
        /// <param name="name"></param>
        /// <param name="chartType"></param>
        /// <param name="elementType"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        private static bool IsMatch(string name, FusionChartType chartType, FusionChartElementType elementType = FusionChartElementType.Chart, IChartConfig config = null)
        {
            var key = (elementType.ToString() + "_" + name).ToLower();

            if (Attributes.ContainsKey(key))
            {
                return(0 != (Attributes[key].Charts & chartType));
            }
            //custom attribute
            return(true);
        }
Пример #6
0
 /// <summary>
 /// Вычисляет укрупненную группу графика
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public static FusionChartGroupedType GetChartGroup(this FusionChartType type)
 {
     foreach (long g in Enum.GetValues(typeof(FusionChartGroupedType)))
     {
         if (0 != (g & (long)type))
         {
             return((FusionChartGroupedType)g);
         }
     }
     throw new Exception("group not found");
 }
Пример #7
0
        /// <summary>
        /// 创建图形统计
        /// </summary>
        /// <param name="title"></param>
        /// <param name="ds"></param>
        /// <param name="type">默认柱状</param>
        /// <returns></returns>
        public FusionChartHelper CreateFusionChartHelper(string title, DataSet ds, FusionChartType type = FusionChartType.MSColumn3D)
        {
            var help = new FusionChartHelper(type);

            help.SetDataSource(ds);
            help.ChartHeight         = 580;
            help.ChartWidth          = "100%";
            help.Caption             = title;    //主标题,将显示在图形顶端
            help.SubCaption          = "";       //二级标题,将显示在主标题下方,没有不显示
            help.BgColor             = "e1f5ff"; //背景色
            help.Decimals            = 2;        //显示小数位
            help.IsFormatNumberScale = false;    //是否格式化数字,如1000显示成1K;
            return(help);
        }
Пример #8
0
 /// <summary>
 /// Находит все атрибуты по указанному критерию
 /// </summary>
 /// <param name="chartType"></param>
 /// <param name="element"></param>
 /// <param name="name"></param>
 /// <returns></returns>
 public static IEnumerable<FusionChartAttributeDescriptor> FindAttributes(FusionChartType chartType = FusionChartType.None, FusionChartElementType element = FusionChartElementType.None, string name = null) {
     return Attributes.Values.Where(
         _ => {
             if (chartType != FusionChartType.None)
             {
                 if (0 == (_.Charts & chartType)) return false;
             }
             if (element != FusionChartElementType.None)
             {
                 if (_.Element != element) return false;
             }
             if (!string.IsNullOrWhiteSpace(name)) {
                 if (name.ToLower() != _.Name.ToLower()) return false;
             }
             
             return true;
         }
         );
 }
Пример #9
0
        /// <summary>
        /// 获取图表XML字符串(双轴)
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="c"></param>
        /// <param name="llist"></param>
        /// <param name="slist"></param>
        /// <param name="chartType"></param>
        /// <returns></returns>
        public string GetXMLData(DataTable dt, chart c, IList <line> llist, IList <style> slist, FusionChartType chartType, IList <string> colors, string chartName, string chartWidth, string chartHeight, IList <string> countershaft, string isload = "")
        {
            GetFusionChartDataXML getXML     = new GetFusionChartDataXML();
            StringBuilder         sb_XMLData = new StringBuilder();

            colors = new List <string>();
            while (colors.Count < dt.Columns.Count)
            {
                colors.Add("000080");
                colors.Add("ff0000");
                colors.Add("ff8901");
                colors.Add("55FFFF");
                colors.Add("00BF55");
                colors.Add("FFBF00");
                colors.Add("FFFF00");
                colors.Add("FF9FFF");
                colors.Add("00FB00");
                colors.Add("FF9FFF");
                colors.Add("FF9ooo");
                colors.Add("EF9FFF");
                colors.Add("5F9FFF");
                colors.Add("000000");
                colors.Add("55FFFF");
                colors.Add("ffffff");
                colors.Add("000080");
                colors.Add("0ED1DC");
                colors.Add("595959");
                colors.Add("55FFFF");
                colors.Add("00BF55");
                colors.Add("FFBF00");
                colors.Add("FFFF00");
                colors.Add("FF9ooo");
                colors.Add("EF9FFF");
                colors.Add("5F9FFF");
                colors.Add("000000");
                colors.Add("000080");
                colors.Add("ff0000");
                colors.Add("595959");
                colors.Add("55FFFF");
                colors.Add("00BF55");
                colors.Add("FFBF00");
                colors.Add("FFFF00");
                colors.Add("FF9FFF");
                colors.Add("00FB00");
                colors.Add("000080");
                colors.Add("0ED1DC");
                colors.Add("595959");
                colors.Add("55FFFF");
                colors.Add("00BF55");
                colors.Add("FFBF00");
                colors.Add("FFFF00");
                colors.Add("FF9ooo");
                colors.Add("EF9FFF");
                colors.Add("5F9FFF");
            }

            if (chartType == FusionChartType.MSColumn2D)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartGeneralXML(dt, colors));
                //sb_XMLData.Append(getXML.GetFusionChartTrendLinesXML(llist));
                // sb_XMLData.Append(getXML.GetFusionChartStyleXML(slist));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());

                return(RenderChart(
                           "../Scripts/FusionChart/Swf/MSColumn2D.swf",
                           "",
                           sb_XMLData.ToString(),
                           chartName,
                           chartWidth,
                           chartHeight,
                           false,
                           true
                           ));
            }
            else if (chartType == FusionChartType.Doughnut2D)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartSetXML(dt, colors));
                sb_XMLData.Append(getXML.GetFusionChartStyleXML(slist));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());

                return(RenderChart(
                           "../Scripts/FusionChart/Swf/Doughnut2D.swf",
                           "",
                           sb_XMLData.ToString(),
                           chartName,
                           chartWidth,
                           chartHeight,
                           false,
                           true
                           ));
            }
            else if (chartType == FusionChartType.Pie2D)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartSetXML(dt, colors));
                sb_XMLData.Append(getXML.GetFusionChartStyleXML(slist));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());
                if (!string.IsNullOrWhiteSpace(isload))
                {
                    return(sb_XMLData.ToString());
                }
                else
                {
                    return(RenderChart(
                               "../Scripts/FusionChart/Swf/Pie2D.swf",
                               "",
                               sb_XMLData.ToString(),
                               chartName,
                               chartWidth,
                               chartHeight,
                               false,
                               true
                               ));
                }
            }
            else if (chartType == FusionChartType.AngularGauge)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartGeneralXML(dt, colors));
                sb_XMLData.Append(getXML.GetFusionChartTrendLinesXML(llist));
                sb_XMLData.Append(getXML.GetFusionChartStyleXML(slist));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());

                return(RenderChart(
                           "../Scripts/FusionChart/Swf/AngularGauge.swf",
                           "",
                           sb_XMLData.ToString(),
                           chartName,
                           chartWidth,
                           chartHeight,
                           false,
                           true
                           ));
            }
            else if (chartType == FusionChartType.Bubble)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartBubbleXML(dt));
                sb_XMLData.Append(getXML.GetFusionChartStyleXML(slist));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());

                return(RenderChart(
                           "../Scripts/FusionChart/Swf/Bubble.swf",
                           "",
                           sb_XMLData.ToString(),
                           chartName,
                           chartWidth,
                           chartHeight,
                           false,
                           true
                           ));
            }
            else if (chartType == FusionChartType.Funnel)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartSetXML(dt, colors));
                //sb_XMLData.Append(getXML.GetFusionChartTrendLinesXML(llist));
                // sb_XMLData.Append(getXML.GetFusionChartStyleXML(slist));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());

                return(RenderChart(
                           "../Scripts/FusionChart/Swf/Funnel.swf",
                           "",
                           sb_XMLData.ToString(),
                           chartName,
                           chartWidth,
                           chartHeight,
                           false,
                           true
                           ));
            }
            else if (chartType == FusionChartType.MSCombiDY2D)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartGeneralXML(dt, colors, countershaft));
                //sb_XMLData.Append(getXML.GetFusionChartStyleXML(slist));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());

                return(RenderChart(
                           "../Scripts/FusionChart/Swf/MSCombiDY2D.swf",
                           "",
                           sb_XMLData.ToString(),
                           chartName,
                           chartWidth,
                           chartHeight,
                           false,
                           true
                           ));
            }

            else if (chartType == FusionChartType.Line)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartSetXML(dt, colors));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());
                if (!string.IsNullOrWhiteSpace(isload))
                {
                    return(sb_XMLData.ToString());
                }
                else
                {
                    return(RenderChart(
                               "../Scripts/FusionChart/Swf/Line.swf",
                               "",
                               sb_XMLData.ToString(),
                               chartName,
                               chartWidth,
                               chartHeight,
                               false,
                               true
                               ));
                }
            }

            else if (chartType == FusionChartType.Line2)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartGeneralXML(dt, colors));
                //         sb_XMLData.Append(getXML.GetFusionChartTrendLinesXML(llist));
                //      sb_XMLData.Append(getXML.GetFusionChartStyleXML(slist));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());
                if (!string.IsNullOrWhiteSpace(isload))
                {
                    return(sb_XMLData.ToString());
                }
                else
                {
                    return(RenderChart(
                               "../Scripts/FusionChart/Swf/MSLine.swf",
                               "",
                               sb_XMLData.ToString(),
                               chartName,
                               chartWidth,
                               chartHeight,
                               false,
                               true
                               ));
                }
            }
            else if (chartType == FusionChartType.Pie3D)
            {
                sb_XMLData.Append(getXML.GetFusionChartStartXML(c, chartName));
                sb_XMLData.Append(getXML.GetFusionChartSetXML(dt, colors));
                sb_XMLData.Append(getXML.GetFusionChartStyleXML(slist));
                sb_XMLData.Append(getXML.GetFusionChartEndXML());
                if (!string.IsNullOrWhiteSpace(isload))
                {
                    return(sb_XMLData.ToString());
                }
                else
                {
                    return(RenderChart(
                               "../Scripts/FusionChart/Swf/Pie3D.swf",
                               "",
                               sb_XMLData.ToString(),
                               chartName,
                               chartWidth,
                               chartHeight,
                               false,
                               true
                               ));
                }
            }
            return("");
        }
Пример #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="c"></param>
        /// <param name="llist"></param>
        /// <param name="slist"></param>
        /// <param name="chartType"></param>
        /// <param name="colors"></param>
        /// <param name="chartName"></param>
        /// <param name="chartWidth"></param>
        /// <param name="chartHeight"></param>
        /// <returns></returns>
        public string GetXMLData(DataTable dt, chart c, IList <line> llist, IList <style> slist, FusionChartType chartType, IList <string> colors, string chartName, string chartWidth, string chartHeight, string isload = "")
        {
            IList <string> countershaft = new List <string>();

            return(GetXMLData(dt, c, llist, slist, chartType, colors, chartName, chartWidth, chartHeight, countershaft, isload));
        }
Пример #11
0
 /// <summary>
 ///     Проверить, что тип графика попадает в указанную группу
 /// </summary>
 /// <param name="fusionChartType">Тип графика</param>
 /// <param name="groupedType">Тип группы</param>
 /// <returns>Признак того, что представление графика попадает в указанную группу</returns>
 public static bool Is(this FusionChartType fusionChartType, FusionChartGroupedType groupedType)
 {
     return((fusionChartType & (FusionChartType)groupedType) == fusionChartType);
 }
Пример #12
0
 /// <summary>
 ///     Признак того, что график относится к стековым
 /// </summary>
 /// <param name="fusionChartType">Тип графика</param>
 /// <returns>Признак того, что график стековым</returns>
 public static bool IsStacked(this FusionChartType fusionChartType)
 {
     return(fusionChartType.Is(FusionChartGroupedType.Stacked));
 }
Пример #13
0
 /// <summary>
 ///     Признак того, что график относится к комбинированным
 /// </summary>
 /// <param name="fusionChartType">Тип графика</param>
 /// <returns>Признак того, что график комбинированный</returns>
 public static bool IsCombined(this FusionChartType fusionChartType)
 {
     return(fusionChartType.Is(FusionChartGroupedType.Combination));
 }
Пример #14
0
 /// <summary>
 ///     Установка типа графика в конфиг
 /// </summary>
 /// <param name="chartConfig">Представление конфига</param>
 /// <param name="type">Тип графика</param>
 /// <returns>Замыкание на конфиг</returns>
 public static IChartConfig SetChartType(this IChartConfig chartConfig, FusionChartType type)
 {
     chartConfig.Type = type.ToString();
     return(chartConfig);
 }
Пример #15
0
 /// <summary>
 ///     Признак того, что график односерийный
 /// </summary>
 /// <param name="fusionChartType">Тип графика</param>
 /// <returns>Признак того, что график односерийный</returns>
 public static bool IsSingleSeries(this FusionChartType fusionChartType)
 {
     return(fusionChartType.Is(FusionChartGroupedType.SingleSeries));
 }
Пример #16
0
 /// <summary>
 ///     Признак того, что график мультисерийный
 /// </summary>
 /// <param name="fusionChartType">Тип графика</param>
 /// <returns>Признак того, что график мультисерийный</returns>
 public static bool IsMultiserial(this FusionChartType fusionChartType)
 {
     return(fusionChartType.Is(FusionChartGroupedType.MultiSeries));
 }