Ejemplo n.º 1
0
        public static ChartProperties getChartProperties(int max, bool steppedPBR)
        {
            ChartProperties props=new ChartProperties();
            props.XAxisType = XAxisTypeEnum.datetime;
            props.XValueFormatString = "dd.MM HH:mm";

            ChartAxisProperties pAx=new ChartAxisProperties();
            pAx.ProcessAuto = true;
            pAx.Auto = true;
            pAx.Min = 0;
            pAx.Max = max;
            pAx.Interval = 10;
            pAx.MinHeight = 10;
            pAx.Index = 0;

            ChartAxisProperties vAx=new ChartAxisProperties();
            vAx.Auto = true;
            vAx.Index = 1;

            props.addAxis(pAx);
            props.addAxis(vAx);

            ChartSerieProperties FaktSerie=new ChartSerieProperties();
            FaktSerie.Color = "0-0-255";
            FaktSerie.Title = "Факт";
            FaktSerie.TagName = "Fakt";
            FaktSerie.LineWidth = 2;
            FaktSerie.SerieType = ChartSerieType.stepLine;
            FaktSerie.YAxisIndex = 0;
            FaktSerie.Enabled = true;

            ChartSerieProperties PlanSerie=new ChartSerieProperties();
            PlanSerie.Color = "0-255-0";
            PlanSerie.Title = "План";
            PlanSerie.TagName = "Plan";
            PlanSerie.LineWidth = 1;
            PlanSerie.SerieType = steppedPBR ? ChartSerieType.stepLine : ChartSerieType.line;
            PlanSerie.YAxisIndex = 0;
            PlanSerie.Enabled = true;

            props.addSerie(FaktSerie);
            props.addSerie(PlanSerie);

            return props;
        }
Ejemplo n.º 2
0
        public static ChartProperties getChartProperties(bool steppedPBR)
        {
            ChartProperties props=new ChartProperties();
            props.XAxisType = XAxisTypeEnum.datetime;
            props.XValueFormatString = "dd.MM HH:mm";

            ChartAxisProperties pAx=new ChartAxisProperties();
            pAx.Auto = true;
            pAx.Min = 0;
            pAx.Max = 1050;
            pAx.Interval = 50;
            pAx.Index = 0;

            ChartAxisProperties vAx=new ChartAxisProperties();
            vAx.Auto = true;
            vAx.Index = 1;

            props.addAxis(pAx);
            props.addAxis(vAx);

            ChartSerieProperties gtp1FaktSerie=new ChartSerieProperties();
            gtp1FaktSerie.Color = "0-255-0";
            gtp1FaktSerie.Title = "ГТП-1 факт";
            gtp1FaktSerie.TagName = "gtp1Fakt";
            gtp1FaktSerie.LineWidth = 2;
            gtp1FaktSerie.SerieType = ChartSerieType.stepLine;
            gtp1FaktSerie.YAxisIndex = 0;
            gtp1FaktSerie.Enabled = true;

            ChartSerieProperties gtp2FaktSerie=new ChartSerieProperties();
            gtp2FaktSerie.Color = "0-0-255";
            gtp2FaktSerie.Title = "ГТП-2 факт";
            gtp2FaktSerie.TagName = "gtp2Fakt";
            gtp2FaktSerie.LineWidth = 2;
            gtp2FaktSerie.SerieType = ChartSerieType.stepLine;
            gtp2FaktSerie.YAxisIndex = 0;
            gtp2FaktSerie.Enabled = true;

            ChartSerieProperties gesFaktSerie=new ChartSerieProperties();
            gesFaktSerie.Color = "0-0-0";
            gesFaktSerie.Title = "ГЭС факт";
            gesFaktSerie.TagName = "gesFakt";
            gesFaktSerie.LineWidth = 2;
            gesFaktSerie.SerieType = ChartSerieType.stepLine;
            gesFaktSerie.YAxisIndex = 0;
            gesFaktSerie.Enabled = false;

            ChartSerieProperties gtp1PlanSerie=new ChartSerieProperties();
            gtp1PlanSerie.Color = "0-255-0";
            gtp1PlanSerie.Title = "ГТП-1 план";
            gtp1PlanSerie.TagName = "gtp1Plan";
            gtp1PlanSerie.LineWidth = 1;
            gtp1PlanSerie.SerieType = steppedPBR?ChartSerieType.stepLine:ChartSerieType.line;
            gtp1PlanSerie.YAxisIndex = 0;
            gtp1PlanSerie.Enabled = true;

            ChartSerieProperties gtp2PlanSerie=new ChartSerieProperties();
            gtp2PlanSerie.Color = "0-0-255";
            gtp2PlanSerie.Title = "ГТП-2 план";
            gtp2PlanSerie.TagName = "gtp2Plan";
            gtp2PlanSerie.LineWidth = 1;
            gtp2PlanSerie.SerieType = steppedPBR ? ChartSerieType.stepLine : ChartSerieType.line;
            gtp2PlanSerie.YAxisIndex = 0;
            gtp2PlanSerie.Enabled = true;

            ChartSerieProperties gesPlanSerie=new ChartSerieProperties();
            gesPlanSerie.Color = "0-0-0";
            gesPlanSerie.Title = "ГЭС план";
            gesPlanSerie.TagName = "gesPlan";
            gesPlanSerie.LineWidth = 1;
            gesPlanSerie.SerieType = steppedPBR ? ChartSerieType.stepLine : ChartSerieType.line;
            gesPlanSerie.YAxisIndex = 0;
            gesPlanSerie.Enabled = false;

            ChartSerieProperties vyrabFaktSerie=new ChartSerieProperties();
            vyrabFaktSerie.Color = "255-0-0";
            vyrabFaktSerie.Title = "Выработка факт";
            vyrabFaktSerie.TagName = "vyrabFakt";
            vyrabFaktSerie.LineWidth = 2;
            vyrabFaktSerie.SerieType = ChartSerieType.stepLine;
            vyrabFaktSerie.YAxisIndex = 1;
            vyrabFaktSerie.Enabled = true;

            ChartSerieProperties vyrabPlanSerie=new ChartSerieProperties();
            vyrabPlanSerie.Color = "255-0-0";
            vyrabPlanSerie.Title = "Выработка план";
            vyrabPlanSerie.TagName = "vyrabPlan";
            vyrabPlanSerie.LineWidth = 1;
            vyrabPlanSerie.SerieType = ChartSerieType.stepLine;
            vyrabPlanSerie.YAxisIndex = 1;
            vyrabPlanSerie.Enabled = true;

            props.addSerie(gtp1FaktSerie);
            props.addSerie(gtp2FaktSerie);
            props.addSerie(gesFaktSerie);
            props.addSerie(gtp1PlanSerie);
            props.addSerie(gtp2PlanSerie);
            props.addSerie(gesPlanSerie);
            props.addSerie(vyrabPlanSerie);
            props.addSerie(vyrabFaktSerie);

            return props;
        }
Ejemplo n.º 3
0
        public void init(ChartDataSerie serieData, ChartSerieProperties serieProp)
        {
            SerieIndex = silverChartControl.ChartSeries.Count;
            TagName = serieData.Name;
            Name = serieProp.Title;
            SerieType = serieProp.SerieType;
            Brush tr=new SolidColorBrush(Colors.Transparent);

            Serie=null;
            Brush br=new SolidColorBrush(Color.FromArgb(255,0,0,0));
            if (serieProp.Color != null) {
                string[] colors=serieProp.Color.Split('-');
                byte r=Byte.Parse(colors[0]);
                byte g=Byte.Parse(colors[1]);
                byte b=Byte.Parse(colors[2]);
                br = new SolidColorBrush(Color.FromArgb(255, r, g, b));

            } else {
                //br = ChartActions.Actions().getNextColor();
            }
            switch (serieProp.SerieType){
                case ChartSerieType.line:
                    LineSeries lineSerie=new LineSeries();
                    lineSerie.LineStrokeThickness=serieProp.LineWidth+1;
                    lineSerie.LineStroke = br;
                    LineStroke = lineSerie.LineStroke;
                    lineSerie.HighlightingEnabled=true;
                    lineSerie.PointSize = 10;
                    lineSerie.PointFill = tr;
                    lineSerie.PointStroke = tr;
                    Serie = lineSerie;
                    break;
                case ChartSerieType.stepLine:
                    StaircaseSeries stairSerie=new StaircaseSeries();
                    stairSerie.LineStrokeThickness=serieProp.LineWidth+1;
                    stairSerie.LineStroke = br;
                    stairSerie.HighlightingEnabled = true;
                    LineStroke = stairSerie.LineStroke;
                    Serie = stairSerie;
                    stairSerie.PointSize = 10;
                    stairSerie.PointFill = tr;
                    stairSerie.PointStroke = tr;
                    break;
                case ChartSerieType.column:
                    ColumnSeries columnSerie=new ColumnSeries();
                    columnSerie.HighlightingEnabled = true;
                    columnSerie.PointFill = br;
                    columnSerie.PointStroke = br;
                    LineStroke = br;
                    Serie = columnSerie;
                    columnSerie.ToolTipEnabled = true;
                    break;
            }
            Serie.ToolTipTemplate = XamlReader.Load
                (TemplateStr.Replace("~serieName~", this.Name).
                    Replace("~xFormat~",silverChartControl.XAxesForamtString).
                    Replace("~yFormat~", "#,0.##")) as ControlTemplate;

            Serie.PropertyChanged += new PropertyChangedEventHandler(Serie_PropertyChanged);
            silverChartControl.CurrentChart.Series.Add(Serie);

            YAxisIndex = serieProp.YAxisIndex;

            silverChartControl.TrackBehaviour.PropertyChanged += new PropertyChangedEventHandler(TrackBehaviour_PropertyChanged);
            refresh(serieData);
            Enabled = serieProp.Enabled;
        }
Ejemplo n.º 4
0
        public ChartProperties createChartProperties()
        {
            ChartProperties props=new ChartProperties();
            props.XAxisType = XAxisTypeEnum.datetime;

            ChartAxisProperties pAx=new ChartAxisProperties();
            pAx.Min = 0;
            pAx.Max = 1020;
            pAx.Auto = false;
            pAx.Interval = 100;
            pAx.Index = 1;

            ChartAxisProperties nbAx=new ChartAxisProperties();
            nbAx.Auto = true;
            nbAx.Interval = 0.1;
            nbAx.Index = 0;

            ChartAxisProperties qAx=new ChartAxisProperties();
            qAx.Auto = false;
            qAx.Min = 0;
            qAx.Max = 7200;
            qAx.Index = 2;

            ChartAxisProperties vbAx=new ChartAxisProperties();
            vbAx.Auto = true;
            vbAx.Index = 3;

            ChartAxisProperties naporAx=new ChartAxisProperties();
            naporAx.Auto = true;
            naporAx.Index = 4;

            ChartAxisProperties tAx=new ChartAxisProperties();
            tAx.Auto = false;
            tAx.Min = -40;
            tAx.Max = 40;
            tAx.Index = 5;

            ChartSerieProperties pSerie=new ChartSerieProperties();
            pSerie.Color = "0-0-255";
            pSerie.LineWidth = 2;
            pSerie.SerieType = ChartSerieType.line;
            pSerie.Title = "P факт";
            pSerie.TagName = "PFakt";
            pSerie.YAxisIndex = 1;

            ChartSerieProperties pbrSerie=new ChartSerieProperties();
            pbrSerie.Color = "0-0-255";
            pbrSerie.LineWidth = 1;
            pbrSerie.SerieType = ChartSerieType.line;
            pbrSerie.Title = "ПБР";
            pbrSerie.TagName = "PBR";
            pbrSerie.YAxisIndex = 1;

            ChartSerieProperties nbFaktSerie=new ChartSerieProperties();
            nbFaktSerie.Color = "255-0-0";
            nbFaktSerie.LineWidth = 2;
            nbFaktSerie.SerieType = ChartSerieType.line;
            nbFaktSerie.Title = "НБ факт";
            nbFaktSerie.TagName = "NBFakt";
            nbFaktSerie.YAxisIndex = 0;

            ChartSerieProperties nbPrognozSerie=new ChartSerieProperties();
            nbPrognozSerie.Color = "255-0-0";
            nbPrognozSerie.LineWidth = 1;
            nbPrognozSerie.SerieType = ChartSerieType.line;
            nbPrognozSerie.Title = "НБ прогноз";
            nbPrognozSerie.TagName = "NBPrognoz";
            nbPrognozSerie.YAxisIndex = 0;

            ChartSerieProperties qFaktSerie=new ChartSerieProperties();
            qFaktSerie.Color = "0-255-0";
            qFaktSerie.LineWidth = 2;
            qFaktSerie.SerieType = ChartSerieType.line;
            qFaktSerie.Title = "Q факт";
            qFaktSerie.TagName = "QFakt";
            qFaktSerie.YAxisIndex = 2;

            ChartSerieProperties qPrognozSerie=new ChartSerieProperties();
            qPrognozSerie.Color = "0-255-0";
            qPrognozSerie.LineWidth = 1;
            qPrognozSerie.SerieType = ChartSerieType.line;
            qPrognozSerie.Title = "Q прогноз";
            qPrognozSerie.TagName = "QPrognoz";
            qPrognozSerie.Enabled = false;
            qPrognozSerie.YAxisIndex = 2;

            ChartSerieProperties vbSerie=new ChartSerieProperties();
            vbSerie.Color = "0-255-255";
            vbSerie.LineWidth = 2;
            vbSerie.SerieType = ChartSerieType.line;
            vbSerie.Title = "ВБ";
            vbSerie.TagName = "VB";
            vbSerie.Enabled = false;
            vbSerie.YAxisIndex = 3;

            ChartSerieProperties naporSerie=new ChartSerieProperties();
            naporSerie.Color = "255-0-255";
            naporSerie.LineWidth = 2;
            naporSerie.SerieType = ChartSerieType.line;
            naporSerie.Title = "Напор";
            naporSerie.TagName = "Napor";
            naporSerie.Enabled = false;
            naporSerie.YAxisIndex = 4;

            ChartSerieProperties naporPrognozSerie=new ChartSerieProperties();
            naporPrognozSerie.Color = "255-0-255";
            naporPrognozSerie.LineWidth = 1;
            naporPrognozSerie.SerieType = ChartSerieType.line;
            naporPrognozSerie.Title = "Напор прогноз";
            naporPrognozSerie.TagName = "NaporPrognoz";
            naporPrognozSerie.Enabled = false;
            naporPrognozSerie.YAxisIndex = 4;

            ChartSerieProperties tSerie=new ChartSerieProperties();
            tSerie.Color = "120-0-255";
            tSerie.LineWidth = 2;
            tSerie.SerieType = ChartSerieType.line;
            tSerie.Title = "Температура";
            tSerie.TagName = "T";
            tSerie.Enabled = false;
            tSerie.YAxisIndex = 5;

            props.addAxis(pAx);
            props.addAxis(nbAx);
            props.addAxis(qAx);
            props.addAxis(vbAx);
            props.addAxis(naporAx);
            props.addAxis(tAx);

            props.addSerie(pSerie);
            props.addSerie(pbrSerie);
            props.addSerie(nbFaktSerie);
            props.addSerie(nbPrognozSerie);
            props.addSerie(qFaktSerie);
            props.addSerie(qPrognozSerie);
            props.addSerie(vbSerie);
            props.addSerie(naporSerie);
            props.addSerie(naporPrognozSerie);
            props.addSerie(tSerie);

            props.XAxisType = XAxisTypeEnum.datetime;

            return props;
        }
Ejemplo n.º 5
0
 public void addSerie(ChartSerieProperties serie)
 {
     if (!SeriesNames.Keys.Contains(serie.TagName)) {
         Series.Add(serie);
         SeriesNames.Add(serie.TagName, Series.IndexOf(serie));
     }
 }
Ejemplo n.º 6
0
        public virtual void CreateChart()
        {
            Answer.Chart = new ChartAnswer();
            Answer.Chart.Properties = new ChartProperties();
            Answer.Chart.Data = new ChartData();

            ChartAxisProperties ax=new ChartAxisProperties();
            ax.Auto = true;
            ax.Index = 0;

            ChartAxisProperties ax1=new ChartAxisProperties();
            ax1.Auto = true;
            ax1.Index = 1;

            Answer.Chart.Properties.addAxis(ax);
            Answer.Chart.Properties.addAxis(ax1);

            ChartSerieType type=ChartSerieType.stepLine;
            if (Interval == IntervalReportEnum.quarter || Interval == IntervalReportEnum.month) {
                type = ChartSerieType.column;
            }

            Answer.Chart.Properties.XAxisType = XAxisTypeEnum.datetime;

            Answer.Chart.Properties.XValueFormatString = getDateFormat();

            Random r=new Random();
            int indexColor=0;
            foreach (RecordTypeBase recordType in RecordTypes.Values) {
                if (recordType.ToChart) {
                    ChartSerieProperties props=new ChartSerieProperties();
                    props.Title = recordType.Title;
                    props.TagName = recordType.ID;
                    props.LineWidth = 2;
                    props.Color = ChartColor.GetColorStr(indexColor++);
                    props.SerieType = type;
                    props.YAxisIndex = 0;
                    Answer.Chart.Properties.addSerie(props);

                    ChartDataSerie data=new ChartDataSerie();
                    data.Name = recordType.ID;
                    foreach (DateTime date in Dates) {
                        DateTime dt=GetCorrectedDateForChart(date);
                        data.Points.Add(new ChartDataPoint(dt, Data[date][recordType.ID]));
                    }
                    Answer.Chart.Data.addSerie(data);
                }
            }
        }
Ejemplo n.º 7
0
        public virtual void CreateChart(List<Report> reportAddList = null)
        {
            Answer.Chart = new ChartAnswer();
            Answer.Chart.Properties = new ChartProperties();
            Answer.Chart.Data = new ChartData();

            ChartAxisProperties ax=new ChartAxisProperties();
            ax.Auto = true;
            ax.Index = 0;

            ChartAxisProperties ax1=new ChartAxisProperties();
            ax1.Auto = true;
            ax1.Index = 1;

            Answer.Chart.Properties.addAxis(ax);
            Answer.Chart.Properties.addAxis(ax1);

            ChartSerieType type=ChartSerieType.stepLine;
            if (Interval == IntervalReportEnum.quarter || Interval == IntervalReportEnum.month || Interval == IntervalReportEnum.year) {
                type = ChartSerieType.column;
            }

            Answer.Chart.Properties.XAxisType = XAxisTypeEnum.datetime;

            Answer.Chart.Properties.XValueFormatString = getDateFormat(reportAddList != null);

            Random r=new Random();
            int indexColor=0;
            foreach (RecordTypeBase recordType in RecordTypes.Values) {
                if (recordType.ToChart) {
                    ChartSerieProperties props=new ChartSerieProperties();
                    string title=reportAddList != null ? recordType.Title + " " + AddReportTitle : recordType.Title;
                    props.Title = title;
                    props.TagName = recordType.ID;
                    props.LineWidth = 2;
                    props.Color = ChartColor.GetColorStr(indexColor++);
                    props.SerieType = type;
                    props.YAxisIndex = 0;
                    Answer.Chart.Properties.addSerie(props);

                    ChartDataSerie data=new ChartDataSerie();
                    data.Name = recordType.ID;
                    foreach (DateTime date in Dates) {
                        DateTime dt=GetCorrectedDateForChart(date);
                        data.Points.Add(new ChartDataPoint(dt, Data[date][recordType.ID]));
                    }
                    Answer.Chart.Data.addSerie(data);

                    if (reportAddList != null) {
                        foreach (Report reportAdd in reportAddList) {
                            int diffY = reportAdd.DateStart.Year - DateStart.Year;
                            int diffM = reportAdd.DateStart.Month - DateStart.Month;
                            int diffD = reportAdd.DateStart.Day - DateStart.Day;
                            props = new ChartSerieProperties();
                            props.Title = recordType.Title + " " + reportAdd.AddReportTitle;
                            props.TagName = recordType.ID + "_" + reportAdd.AddReportTitle;
                            props.LineWidth = 1;
                            props.Color = ChartColor.GetColorStr(indexColor++);
                            props.SerieType = type;
                            props.YAxisIndex = 0;
                            Answer.Chart.Properties.addSerie(props);

                            data = new ChartDataSerie();
                            data.Name = recordType.ID + "_" + reportAdd.AddReportTitle;
                            foreach (DateTime date in Dates) {
                                DateTime dt=GetCorrectedDateForChart(date);
                                try {
                                    DateTime newDate=date.AddYears(diffY).AddMonths(diffM).AddDays(diffD);
                                    data.Points.Add(new ChartDataPoint(dt, reportAdd.Data[newDate][recordType.ID]));
                                } catch { }
                            }
                            Answer.Chart.Data.addSerie(data);
                        }
                    }
                }
            }
        }