Пример #1
0
        private void UpdateLine(LineGraph line, double[] x, double[] y, Color color, string description, out LineGraph newLine)
        {
            ChartUpdater cup   = new ChartUpdater(_UpdateLine);
            object       _line = this.Dispatcher.Invoke(cup, line, x, y, color, description);

            newLine = _line as LineGraph;
        }
Пример #2
0
        public void UpdatePowerPoints(string fileName)
        {
            var srcFile = new FileInfo(GetFilePath(fileName));
            var fName   = Path.Combine(TempDir, srcFile.Name);

            File.Copy(srcFile.FullName, fName, true);

            var fi          = new FileInfo(fName);
            var newFileName = "Updated-" + srcFile.Name;
            var fi2         = new FileInfo(Path.Combine(TempDir, newFileName));

            File.Copy(fi.FullName, fi2.FullName, true);

            using var pDoc = PresentationDocument.Open(fi2.FullName, true);
            var chart1Data = new ChartData
            {
                SeriesNames      = new[] { "Car", "Truck", "Van", },
                CategoryDataType = ChartDataType.String,
                CategoryNames    = new[] { "Q1", "Q2", "Q3", "Q4", },
                Values           = new[]
                {
                    new double[] { 320, 310, 320, 330, }, new double[] { 201, 224, 230, 221, },
                    new double[] { 180, 200, 220, 230, },
                },
            };

            ChartUpdater.UpdateChart(pDoc, 1, chart1Data);
        }
Пример #3
0
        public static void Process(WordprocessingDocument docx,
                                   DataColumnInfo dcInfo,
                                   ReportDetailTemplate detail,
                                   SimpleField field)
        {
            var p        = GetFirstParent <Paragraph>(field);
            var drawing  = p?.Descendants <Drawing>().FirstOrDefault();
            var chartRef = drawing?.Descendants <ChartReference>().FirstOrDefault();

            if (chartRef == null)
            {
                return;
            }

            var firstOrDefault = docx.MainDocumentPart
                                 .Parts
                                 .FirstOrDefault(c => c.RelationshipId == chartRef.Id);

            if (firstOrDefault == null)
            {
                return;
            }
            var chartPart = (ChartPart)firstOrDefault
                            .OpenXmlPart;
            var data = GetChartData(detail);

            ChartUpdater.UpdateChart(chartPart, data);
        }
Пример #4
0
        public static void Process(WordprocessingDocument docx,
                                   DataColumnInfo dcInfo,
                                   ReportDetailTemplate detail,
                                   string contentControlTag)
        {
            var data = GetChartData(detail);

            ChartUpdater.UpdateChart(docx, contentControlTag, data);
        }
Пример #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ChartCore"/> class.
 /// </summary>
 /// <param name="view">The view.</param>
 /// <param name="updater">The updater.</param>
 protected ChartCore(IChartView view, ChartUpdater updater)
 {
     View                  = view;
     Updater               = updater;
     DrawMargin            = new CoreRectangle();
     DrawMargin.SetHeight += view.SetDrawMarginHeight;
     DrawMargin.SetWidth  += view.SetDrawMarginWidth;
     DrawMargin.SetTop    += view.SetDrawMarginTop;
     DrawMargin.SetLeft   += view.SetDrawMarginLeft;
 }
Пример #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ChartCore"/> class.
 /// </summary>
 /// <param name="view">The view.</param>
 /// <param name="updater">The updater.</param>
 protected ChartCore(IChartView view, ChartUpdater updater)
 {
     View = view;
     Updater = updater;
     DrawMargin = new CoreRectangle();
     DrawMargin.SetHeight += view.SetDrawMarginHeight;
     DrawMargin.SetWidth += view.SetDrawMarginWidth;
     DrawMargin.SetTop += view.SetDrawMarginTop;
     DrawMargin.SetLeft += view.SetDrawMarginLeft;
 }
Пример #7
0
        public EventsChartArea()
        {
            WrappingCanvas = new Canvas()
            {
                HorizontalAlignment = HorizontalAlignment.Stretch,
                VerticalAlignment   = VerticalAlignment.Stretch
            };
            Canvas = new Canvas();
            WrappingCanvas.Children.Add(Canvas);

            Content = WrappingCanvas;

            _chartUpdater = new ChartUpdater(this, this);

            _tooltip = new Tooltip(this);
            AddUiElement(_tooltip);

            Background   = Brushes.White;
            MouseMove   += EventsChartArea_MouseMove;
            MouseLeave  += EventsChartArea_MouseLeave;
            SizeChanged += OnSizeChanged;
            Loaded      += OnLoaded;
        }
        public void CU001(string name)
        {
            FileInfo templateFile = new FileInfo(Path.Combine(TestUtil.SourceDir.FullName, name));

            if (templateFile.Extension.ToLower() == ".docx")
            {
                WmlDocument wmlTemplate = new WmlDocument(templateFile.FullName);

                var afterUpdatingDocx = new FileInfo(Path.Combine(TestUtil.TempDir.FullName, templateFile.Name.Replace(".docx", "-processed-by-ChartUpdater.docx")));
                wmlTemplate.SaveAs(afterUpdatingDocx.FullName);

                using (var wDoc = WordprocessingDocument.Open(afterUpdatingDocx.FullName, true))
                {
                    var chart1Data = new ChartData
                    {
                        SeriesNames = new[] {
                            "Car",
                            "Truck",
                            "Van",
                            "Bike",
                            "Boat",
                        },
                        CategoryDataType = ChartDataType.String,
                        CategoryNames    = new[] {
                            "Q1",
                            "Q2",
                            "Q3",
                            "Q4",
                        },
                        Values = new double[][] {
                            new double[] {
                                100, 310, 220, 450,
                            },
                            new double[] {
                                200, 300, 350, 411,
                            },
                            new double[] {
                                80, 120, 140, 600,
                            },
                            new double[] {
                                120, 100, 140, 400,
                            },
                            new double[] {
                                200, 210, 210, 480,
                            },
                        },
                    };
                    ChartUpdater.UpdateChart(wDoc, "Chart1", chart1Data);

                    var chart2Data = new ChartData
                    {
                        SeriesNames = new[] {
                            "Series"
                        },
                        CategoryDataType = ChartDataType.String,
                        CategoryNames    = new[] {
                            "Cars",
                            "Trucks",
                            "Vans",
                            "Boats",
                        },
                        Values = new double[][] {
                            new double[] {
                                320, 112, 64, 80,
                            },
                        },
                    };
                    ChartUpdater.UpdateChart(wDoc, "Chart2", chart2Data);

                    var chart3Data = new ChartData
                    {
                        SeriesNames = new[] {
                            "X1",
                            "X2",
                            "X3",
                            "X4",
                            "X5",
                            "X6",
                        },
                        CategoryDataType = ChartDataType.String,
                        CategoryNames    = new[] {
                            "Y1",
                            "Y2",
                            "Y3",
                            "Y4",
                            "Y5",
                            "Y6",
                        },
                        Values = new double[][] {
                            new double[] { 3.0, 2.1, .7, .7, 2.1, 3.0, },
                            new double[] { 3.0, 2.1, .8, .8, 2.1, 3.0, },
                            new double[] { 3.0, 2.4, 1.2, 1.2, 2.4, 3.0, },
                            new double[] { 3.0, 2.7, 1.7, 1.7, 2.7, 3.0, },
                            new double[] { 3.0, 2.9, 2.5, 2.5, 2.9, 3.0, },
                            new double[] { 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, },
                        },
                    };
                    ChartUpdater.UpdateChart(wDoc, "Chart3", chart3Data);

                    var chart4Data = new ChartData
                    {
                        SeriesNames = new[] {
                            "Car",
                            "Truck",
                            "Van",
                        },
                        CategoryDataType   = ChartDataType.DateTime,
                        CategoryFormatCode = 14,
                        CategoryNames      = new[] {
                            ToExcelInteger(new DateTime(2013, 9, 1)),
                            ToExcelInteger(new DateTime(2013, 9, 2)),
                            ToExcelInteger(new DateTime(2013, 9, 3)),
                            ToExcelInteger(new DateTime(2013, 9, 4)),
                            ToExcelInteger(new DateTime(2013, 9, 5)),
                            ToExcelInteger(new DateTime(2013, 9, 6)),
                            ToExcelInteger(new DateTime(2013, 9, 7)),
                            ToExcelInteger(new DateTime(2013, 9, 8)),
                            ToExcelInteger(new DateTime(2013, 9, 9)),
                            ToExcelInteger(new DateTime(2013, 9, 10)),
                            ToExcelInteger(new DateTime(2013, 9, 11)),
                            ToExcelInteger(new DateTime(2013, 9, 12)),
                            ToExcelInteger(new DateTime(2013, 9, 13)),
                            ToExcelInteger(new DateTime(2013, 9, 14)),
                            ToExcelInteger(new DateTime(2013, 9, 15)),
                            ToExcelInteger(new DateTime(2013, 9, 16)),
                            ToExcelInteger(new DateTime(2013, 9, 17)),
                            ToExcelInteger(new DateTime(2013, 9, 18)),
                            ToExcelInteger(new DateTime(2013, 9, 19)),
                            ToExcelInteger(new DateTime(2013, 9, 20)),
                        },
                        Values = new double[][] {
                            new double[] {
                                1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 5, 4, 5, 6, 7, 8, 7, 8, 8, 9,
                            },
                            new double[] {
                                2, 3, 3, 4, 4, 5, 6, 7, 8, 7, 8, 9, 9, 9, 7, 8, 9, 9, 10, 11,
                            },
                            new double[] {
                                2, 3, 3, 3, 3, 2, 2, 2, 3, 2, 3, 3, 4, 4, 4, 3, 4, 5, 5, 4,
                            },
                        },
                    };
                    ChartUpdater.UpdateChart(wDoc, "Chart4", chart4Data);
                }
            }
            if (templateFile.Extension.ToLower() == ".pptx")
            {
                PmlDocument pmlTemplate = new PmlDocument(templateFile.FullName);

                var afterUpdatingPptx = new FileInfo(Path.Combine(TestUtil.TempDir.FullName, templateFile.Name.Replace(".pptx", "-processed-by-ChartUpdater.pptx")));
                pmlTemplate.SaveAs(afterUpdatingPptx.FullName);

                using (var pDoc = PresentationDocument.Open(afterUpdatingPptx.FullName, true))
                {
                    var chart1Data = new ChartData
                    {
                        SeriesNames = new[] {
                            "Car",
                            "Truck",
                            "Van",
                        },
                        CategoryDataType = ChartDataType.String,
                        CategoryNames    = new[] {
                            "Q1",
                            "Q2",
                            "Q3",
                            "Q4",
                        },
                        Values = new double[][] {
                            new double[] {
                                320, 310, 320, 330,
                            },
                            new double[] {
                                201, 224, 230, 221,
                            },
                            new double[] {
                                180, 200, 220, 230,
                            },
                        },
                    };
                    ChartUpdater.UpdateChart(pDoc, 1, chart1Data);
                }
            }
        }
Пример #9
0
 public CartesianChartCore(IChartView view, ChartUpdater updater) : base(view, updater)
 {
     updater.Chart = this;
 }
Пример #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PieChartCore"/> class.
 /// </summary>
 /// <param name="view">The view.</param>
 /// <param name="updater">The updater.</param>
 public PieChartCore(IChartView view, ChartUpdater updater) : base(view, updater)
 {
     updater.Chart = this;
 }
 /// <summary>
 /// Initializes Chart model
 /// </summary>
 /// <param name="view">The view.</param>
 /// <param name="updater">The updater.</param>
 public CartesianChartCore(IChartView view, ChartUpdater updater)
     : base(view, updater)
 {
     updater.Chart = this;
 }
Пример #12
0
        public void UpdateWords(string fileName)
        {
            var srcFile = new FileInfo(GetFilePath(fileName));
            var fName   = Path.Combine(TempDir, srcFile.Name);

            File.Copy(srcFile.FullName, fName, true);

            var fi          = new FileInfo(fName);
            var newFileName = "Updated-" + fi.Name;
            var fi2         = new FileInfo(Path.Combine(TempDir, newFileName));

            File.Copy(fi.FullName, fi2.FullName, true);

            using var wDoc = WordprocessingDocument.Open(fi2.FullName, true);
            var chart1Data = new ChartData
            {
                SeriesNames = new[] {
                    "Car",
                    "Truck",
                    "Van",
                    "Bike",
                    "Boat",
                },
                CategoryDataType = ChartDataType.String,
                CategoryNames    = new[] {
                    "Q1",
                    "Q2",
                    "Q3",
                    "Q4",
                },
                Values = new[]
                {
                    new double[] {
                        100, 310, 220, 450,
                    },
                    new double[] {
                        200, 300, 350, 411,
                    },
                    new double[] {
                        80, 120, 140, 600,
                    },
                    new double[] {
                        120, 100, 140, 400,
                    },
                    new double[] {
                        200, 210, 210, 480,
                    },
                },
            };

            ChartUpdater.UpdateChart(wDoc, "Chart1", chart1Data);

            var chart2Data = new ChartData
            {
                SeriesNames = new[] {
                    "Series"
                },
                CategoryDataType = ChartDataType.String,
                CategoryNames    = new[] {
                    "Cars",
                    "Trucks",
                    "Vans",
                    "Boats",
                },
                Values = new[]
                {
                    new double[] {
                        320, 112, 64, 80,
                    },
                },
            };

            ChartUpdater.UpdateChart(wDoc, "Chart2", chart2Data);

            var chart3Data = new ChartData
            {
                SeriesNames = new[] {
                    "X1",
                    "X2",
                    "X3",
                    "X4",
                    "X5",
                    "X6",
                },
                CategoryDataType = ChartDataType.String,
                CategoryNames    = new[] {
                    "Y1",
                    "Y2",
                    "Y3",
                    "Y4",
                    "Y5",
                    "Y6",
                },
                Values = new[]
                {
                    new[] { 3.0, 2.1, .7, .7, 2.1, 3.0, },
                    new[] { 3.0, 2.1, .8, .8, 2.1, 3.0, },
                    new[] { 3.0, 2.4, 1.2, 1.2, 2.4, 3.0, },
                    new[] { 3.0, 2.7, 1.7, 1.7, 2.7, 3.0, },
                    new[] { 3.0, 2.9, 2.5, 2.5, 2.9, 3.0, },
                    new[] { 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, },
                },
            };

            ChartUpdater.UpdateChart(wDoc, "Chart3", chart3Data);

            var chart4Data = new ChartData
            {
                SeriesNames = new[] {
                    "Car",
                    "Truck",
                    "Van",
                },
                CategoryDataType   = ChartDataType.DateTime,
                CategoryFormatCode = 14,
                CategoryNames      = new[] {
                    ToExcelInteger(new DateTime(2013, 9, 1)),
                    ToExcelInteger(new DateTime(2013, 9, 2)),
                    ToExcelInteger(new DateTime(2013, 9, 3)),
                    ToExcelInteger(new DateTime(2013, 9, 4)),
                    ToExcelInteger(new DateTime(2013, 9, 5)),
                    ToExcelInteger(new DateTime(2013, 9, 6)),
                    ToExcelInteger(new DateTime(2013, 9, 7)),
                    ToExcelInteger(new DateTime(2013, 9, 8)),
                    ToExcelInteger(new DateTime(2013, 9, 9)),
                    ToExcelInteger(new DateTime(2013, 9, 10)),
                    ToExcelInteger(new DateTime(2013, 9, 11)),
                    ToExcelInteger(new DateTime(2013, 9, 12)),
                    ToExcelInteger(new DateTime(2013, 9, 13)),
                    ToExcelInteger(new DateTime(2013, 9, 14)),
                    ToExcelInteger(new DateTime(2013, 9, 15)),
                    ToExcelInteger(new DateTime(2013, 9, 16)),
                    ToExcelInteger(new DateTime(2013, 9, 17)),
                    ToExcelInteger(new DateTime(2013, 9, 18)),
                    ToExcelInteger(new DateTime(2013, 9, 19)),
                    ToExcelInteger(new DateTime(2013, 9, 20)),
                },
                Values = new[]
                {
                    new double[] {
                        1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 5, 4, 5, 6, 7, 8, 7, 8, 8, 9,
                    },
                    new double[] {
                        2, 3, 3, 4, 4, 5, 6, 7, 8, 7, 8, 9, 9, 9, 7, 8, 9, 9, 10, 11,
                    },
                    new double[] {
                        2, 3, 3, 3, 3, 2, 2, 2, 3, 2, 3, 3, 4, 4, 4, 3, 4, 5, 5, 4,
                    },
                },
            };

            ChartUpdater.UpdateChart(wDoc, "Chart4", chart4Data);
        }
Пример #13
0
 private void UpdateLine(LineGraph line, double[] x, double[] y, Color color, string description, out LineGraph newLine)
 {
     ChartUpdater cup = new ChartUpdater(_UpdateLine);
     object _line = this.Dispatcher.Invoke(cup, line, x, y, color, description);
     newLine = _line as LineGraph;
 }
Пример #14
0
        private static void Main()
        {
            var n      = DateTime.Now;
            var tempDi = new DirectoryInfo(string.Format("ExampleOutput-{0:00}-{1:00}-{2:00}-{3:00}{4:00}{5:00}", n.Year - 2000, n.Month, n.Day, n.Hour, n.Minute, n.Second));

            tempDi.Create();

            var sourceDi = new DirectoryInfo("../../");

            foreach (var file in sourceDi.GetFiles("*.docx"))
            {
                File.Copy(file.FullName, Path.Combine(tempDi.FullName, file.Name));
            }

            foreach (var file in sourceDi.GetFiles("*.pptx"))
            {
                File.Copy(file.FullName, Path.Combine(tempDi.FullName, file.Name));
            }

            var fileList = Directory.GetFiles(tempDi.FullName, "*.docx");

            foreach (var file in fileList)
            {
                var fi = new FileInfo(file);
                Console.WriteLine(fi.Name);
                var newFileName = "Updated-" + fi.Name;
                var fi2         = new FileInfo(Path.Combine(tempDi.FullName, newFileName));
                File.Copy(fi.FullName, fi2.FullName);

                using var wDoc = WordprocessingDocument.Open(fi2.FullName, true);
                var chart1Data = new ChartData
                {
                    SeriesNames = new[] {
                        "Car",
                        "Truck",
                        "Van",
                        "Bike",
                        "Boat",
                    },
                    CategoryDataType = ChartDataType.String,
                    CategoryNames    = new[] {
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    },
                    Values = new double[][] {
                        new double[] {
                            100, 310, 220, 450,
                        },
                        new double[] {
                            200, 300, 350, 411,
                        },
                        new double[] {
                            80, 120, 140, 600,
                        },
                        new double[] {
                            120, 100, 140, 400,
                        },
                        new double[] {
                            200, 210, 210, 480,
                        },
                    },
                };
                ChartUpdater.UpdateChart(wDoc, "Chart1", chart1Data);

                var chart2Data = new ChartData
                {
                    SeriesNames = new[] {
                        "Series"
                    },
                    CategoryDataType = ChartDataType.String,
                    CategoryNames    = new[] {
                        "Cars",
                        "Trucks",
                        "Vans",
                        "Boats",
                    },
                    Values = new double[][] {
                        new double[] {
                            320, 112, 64, 80,
                        },
                    },
                };
                ChartUpdater.UpdateChart(wDoc, "Chart2", chart2Data);

                var chart3Data = new ChartData
                {
                    SeriesNames = new[] {
                        "X1",
                        "X2",
                        "X3",
                        "X4",
                        "X5",
                        "X6",
                    },
                    CategoryDataType = ChartDataType.String,
                    CategoryNames    = new[] {
                        "Y1",
                        "Y2",
                        "Y3",
                        "Y4",
                        "Y5",
                        "Y6",
                    },
                    Values = new double[][] {
                        new double[] { 3.0, 2.1, .7, .7, 2.1, 3.0, },
                        new double[] { 3.0, 2.1, .8, .8, 2.1, 3.0, },
                        new double[] { 3.0, 2.4, 1.2, 1.2, 2.4, 3.0, },
                        new double[] { 3.0, 2.7, 1.7, 1.7, 2.7, 3.0, },
                        new double[] { 3.0, 2.9, 2.5, 2.5, 2.9, 3.0, },
                        new double[] { 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, },
                    },
                };
                ChartUpdater.UpdateChart(wDoc, "Chart3", chart3Data);

                var chart4Data = new ChartData
                {
                    SeriesNames = new[] {
                        "Car",
                        "Truck",
                        "Van",
                    },
                    CategoryDataType   = ChartDataType.DateTime,
                    CategoryFormatCode = 14,
                    CategoryNames      = new[] {
                        ToExcelInteger(new DateTime(2013, 9, 1)),
                        ToExcelInteger(new DateTime(2013, 9, 2)),
                        ToExcelInteger(new DateTime(2013, 9, 3)),
                        ToExcelInteger(new DateTime(2013, 9, 4)),
                        ToExcelInteger(new DateTime(2013, 9, 5)),
                        ToExcelInteger(new DateTime(2013, 9, 6)),
                        ToExcelInteger(new DateTime(2013, 9, 7)),
                        ToExcelInteger(new DateTime(2013, 9, 8)),
                        ToExcelInteger(new DateTime(2013, 9, 9)),
                        ToExcelInteger(new DateTime(2013, 9, 10)),
                        ToExcelInteger(new DateTime(2013, 9, 11)),
                        ToExcelInteger(new DateTime(2013, 9, 12)),
                        ToExcelInteger(new DateTime(2013, 9, 13)),
                        ToExcelInteger(new DateTime(2013, 9, 14)),
                        ToExcelInteger(new DateTime(2013, 9, 15)),
                        ToExcelInteger(new DateTime(2013, 9, 16)),
                        ToExcelInteger(new DateTime(2013, 9, 17)),
                        ToExcelInteger(new DateTime(2013, 9, 18)),
                        ToExcelInteger(new DateTime(2013, 9, 19)),
                        ToExcelInteger(new DateTime(2013, 9, 20)),
                    },
                    Values = new double[][] {
                        new double[] {
                            1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 5, 4, 5, 6, 7, 8, 7, 8, 8, 9,
                        },
                        new double[] {
                            2, 3, 3, 4, 4, 5, 6, 7, 8, 7, 8, 9, 9, 9, 7, 8, 9, 9, 10, 11,
                        },
                        new double[] {
                            2, 3, 3, 3, 3, 2, 2, 2, 3, 2, 3, 3, 4, 4, 4, 3, 4, 5, 5, 4,
                        },
                    },
                };
                ChartUpdater.UpdateChart(wDoc, "Chart4", chart4Data);
            }

            fileList = Directory.GetFiles(tempDi.FullName, "*.pptx");
            foreach (var file in fileList)
            {
                var fi = new FileInfo(file);
                Console.WriteLine(fi.Name);
                var newFileName = "Updated-" + fi.Name;
                var fi2         = new FileInfo(Path.Combine(tempDi.FullName, newFileName));
                File.Copy(fi.FullName, fi2.FullName);

                using var pDoc = PresentationDocument.Open(fi2.FullName, true);
                var chart1Data = new ChartData
                {
                    SeriesNames = new[] {
                        "Car",
                        "Truck",
                        "Van",
                    },
                    CategoryDataType = ChartDataType.String,
                    CategoryNames    = new[] {
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    },
                    Values = new double[][] {
                        new double[] {
                            320, 310, 320, 330,
                        },
                        new double[] {
                            201, 224, 230, 221,
                        },
                        new double[] {
                            180, 200, 220, 230,
                        },
                    },
                };
                ChartUpdater.UpdateChart(pDoc, 1, chart1Data);
            }
        }
Пример #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PieChartCore"/> class.
 /// </summary>
 /// <param name="view">The view.</param>
 /// <param name="updater">The updater.</param>
 public PieChartCore(IChartView view, ChartUpdater updater)
     : base(view, updater)
 {
     updater.Chart = this;
 }