根据设定的导出项,来导出曲线;将不同条码的同种类型数据放到一个chartControl中并打印到不同的sheet页中

  public static void AddChartControl(Dictionary<string, List<HisCycleLayerUnit>> dicCycList, ReportsModel reportModel, string picPath)
        {

            string path = Environment.CurrentDirectory + "\\ExportItem.xml";
            ExportItems exportItems = new ExportItems();
            exportItems = SerializeHelper.XmlDeserializeFromFile<ExportItems>(path, Encoding.UTF8) as ExportItems;

            List<string> list = new List<string>();
            if (exportItems.listExportItems != null && exportItems.listExportItems.Count > 0)
            {
                foreach (var obj in exportItems.listExportItems)
                {
                    list.Add(obj.name);
                }
            }
            if (list != null && list.Count > 0)
            {
                PrintingSystem ps = new PrintingSystem();
                CompositeLink link = new CompositeLink(ps);
                ps.Links.Add(link);
                foreach (var obj in list)
                {
                    ChartControl spineChart = new ChartControl();
         //           Series series = new Series(obj, ViewType.Spline);
                    foreach (var strBatCode in dicCycList)
                    {
                        Series series = new Series(obj, ViewType.Spline);
                        double dModel = 0.0;
                        for (int i = 0; i < strBatCode.Value.Count; i++)
                        {
                            if (obj == "充电容量")
                            {
                                series.Points.Add(new SeriesPoint(strBatCode.Value[i].CYCLEID, strBatCode.Value[i].CHARGECAPACITY));
                                series.Name = strBatCode.Key;
                            }
                            else if (obj == "放电容量")
                            {
                                series.Points.Add(new SeriesPoint(strBatCode.Value[i].CYCLEID, strBatCode.Value[i].DISCHARGECAPACITY));
                                series.Name = strBatCode.Key;
                            }
                            else if (obj == "充电能量")
                            {
                                series.Points.Add(new SeriesPoint(strBatCode.Value[i].CYCLEID, strBatCode.Value[i].CHARGEENERGY));
                                series.Name = strBatCode.Key;
                            }
                            else if (obj == "放电能量")
                            {
                                series.Points.Add(new SeriesPoint(strBatCode.Value[i].CYCLEID, strBatCode.Value[i].DISCHARGEENERGY));
                                series.Name = strBatCode.Key;
                            }
                            else if (obj == "CD_Energy_Retention_Data") {
                                if (reportModel.reportXml == strBatCode.Value[i].CYCLEID.ToString())
                                {
                                    dModel = strBatCode.Value[i].DISCHARGEENERGY;
                                }
                                series.Points.Add(new SeriesPoint(strBatCode.Value[i].CYCLEID,   (strBatCode.Value[i].DISCHARGEENERGY / dModel) * 100));
                                series.Name = strBatCode.Key;
                            }
                            else if (obj == "Capacity_Retention_Data")
                            {
                                if (reportModel.reportXml == strBatCode.Value[i].CYCLEID.ToString())
                                {
                                    dModel = strBatCode.Value[i].CHARGEENERGY;
                                }
                                series.Points.Add(new SeriesPoint(strBatCode.Value[i].CYCLEID, (strBatCode.Value[i].CHARGEENERGY / dModel) * 100));
                                series.Name = strBatCode.Key;
                            }
                        }
                        if (series != null&&series.Points.Count>0)
                            spineChart.Series.Add(series);
                    }

           
                    XYDiagram diagram = (XYDiagram)spineChart.Diagram;

                    //     diagram.AxisX.GridLines.Color = Color.Black;
                    diagram.AxisX.Title.Visibility = DefaultBoolean.True;
                    diagram.AxisX.Title.Alignment = StringAlignment.Center;
                    diagram.AxisX.Title.Text = "Cycle_No.";
                    diagram.AxisX.Title.EnableAntialiasing = DefaultBoolean.True;
                    diagram.AxisX.Title.Font = new Font("Tahoma", 12, FontStyle.Bold);

                    //   diagram.AxisY.GridLines.Color = Color.YellowGreen;
                    diagram.AxisY.Title.Visibility = DefaultBoolean.True;
                    diagram.AxisY.Title.Alignment = StringAlignment.Center;
                    diagram.AxisY.Title.Text = obj;
                    diagram.AxisY.Title.EnableAntialiasing = DefaultBoolean.True;
                    diagram.AxisY.Title.Font = new Font("Tahoma", 12, FontStyle.Bold);


                    ((XYDiagram)spineChart.Diagram).EnableAxisXZooming = true;
                    spineChart.Titles.Add(new ChartTitle());
                    spineChart.Titles[0].Text = obj + "曲线";
                    spineChart.Titles[0].Font = new Font("Tahoma", 14, FontStyle.Bold);
                    spineChart.Dock = DockStyle.Fill;


                    //PrintingSystem ps = new PrintingSystem();
                    //CompositeLink link = new CompositeLink(ps);
                    //ps.Links.Add(link);

                    link.Links.Add(CreatePrintableLink(spineChart));

                    //link.Landscape = false;
                    //link.CreatePageForEachLink();
                    //link.PaperName = obj + "曲线";
                    //XlsxExportOptions options = new XlsxExportOptions();
                    //options.SheetName = obj + "曲线"; //修改sheet页命名
                    //link.ExportToXlsx(picPath, options);
                }
                link.Landscape = true;
                link.PaperName = "曲线图";
                link.CreatePageForEachLink();
                XlsxExportOptions options = new XlsxExportOptions();
                options.SheetName = "曲线图"; //修改sheet页命名
                options.ExportMode = DevExpress.XtraPrinting.XlsxExportMode.SingleFilePageByPage;
                link.ExportToXlsx(picPath, options);
                
            }


        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值