示例#1
0
        public static void Diagramma(Info info)
        {
            string pathDocument = info.FileName;
            DocX   document     = DocX.Create(pathDocument);

            document.InsertChart(CreatePieChart(info));
            document.InsertChart(CreateBarChart(info));
            document.Save();
        }
示例#2
0
        /// <summary>
        /// Add a 3D bar chart to a document.
        /// </summary>
        ///
        public static void Chart3D()
        {
            Console.WriteLine("\tChart3D)");

            // Creates a document
            using (DocX document = DocX.Create(ChartSample.ChartSampleOutputDirectory + @"3DChart.docx"))
            {
                // Add a title
                document.InsertParagraph("3D Chart").FontSize(15d).SpacingAfter(50d).Alignment = Alignment.center;

                // Create a 3D Bar chart.
                var c = new BarChart();
                c.View3D = true;

                // Create the data.
                var brazil = ChartData.CreateBrazilExpenses();

                // Create and add series
                var s1 = new Series("Brazil");
                s1.Color = Color.GreenYellow;
                s1.Bind(brazil, "Category", "Expenses");
                c.AddSeries(s1);

                // Insert chart into document
                document.InsertParagraph("Expenses(M$) for selected categories in Brazil").FontSize(15).SpacingAfter(10d);
                document.InsertChart(c);

                document.Save();
                Console.WriteLine("\tCreated: 3DChart.docx\n");
            }
        }
示例#3
0
        private static void LineChart()
        {
            // Create new document.
            using (DocX document = DocX.Create(@"docs\LineChart.docx"))
            {
                // Create chart.
                LineChart c = new LineChart();
                c.AddLegend(ChartLegendPosition.Bottom, false);

                // Create data.
                List <ChartData> company1 = ChartData.CreateCompanyList1();
                List <ChartData> company2 = ChartData.CreateCompanyList2();

                // Create and add series
                Series s1 = new Series("Microsoft");
                s1.Color = Color.GreenYellow;
                s1.Bind(company1, "Mounth", "Money");
                c.AddSeries(s1);
                Series s2 = new Series("Apple");
                s2.Bind(company2, "Mounth", "Money");
                c.AddSeries(s2);

                // Insert chart into document
                document.InsertParagraph("Diagram").FontSize(20);
                document.InsertChart(c);
                document.Save();
            }
        }
示例#4
0
        /// <summary>
        /// Add a Pie chart to a document.
        /// </summary>
        public static void PieChart()
        {
            Console.WriteLine("\tPieChart()");

            // Creates a document
            using (DocX document = DocX.Create(ChartSample.ChartSampleOutputDirectory + @"PieChart.docx"))
            {
                // Add a title
                document.InsertParagraph("Pie Chart").FontSize(15d).SpacingAfter(50d).Alignment = Alignment.center;

                // Create a pie chart.
                var c = new PieChart();
                c.AddLegend(ChartLegendPosition.Left, false);

                // Create the data.
                var brazil = ChartData.CreateBrazilExpenses();

                // Create and add series
                var s1 = new Series("Canada");
                s1.Bind(brazil, "Category", "Expenses");
                c.AddSeries(s1);

                // Insert chart into document
                document.InsertParagraph("Expenses(M$) for selected categories in Canada").FontSize(15).SpacingAfter(10d);
                document.InsertChart(c);

                document.Save();
                Console.WriteLine("\tCreated: PieChart.docx\n");
            }
        }
示例#5
0
        public void CreateDiagram(List <DiagramModel> list, string seriesname, string path)
        {
            DocX   document = DocX.Create(path);
            Series series   = GetSeries(list, seriesname);

            document.InsertChart(CreateBarChart(series));
            document.Save();
        }
示例#6
0
        public void CreateDiagramInWord(List <String> Legend, List <int> Values, string path)
        {
            DocX   document = DocX.Create(path);
            Series series   = CreateSeries(Legend, Values);

            document.InsertChart(CreateBarChart(series));
            document.Save();
        }
示例#7
0
        /// <typeparam name="T"></typeparam>
        /// <param name="diagram">Тип диаграммы.</param>
        /// <param name="dataLine">Список данных.</param>
        /// <param name="diagramName">Название диаграммы.</param>
        /// <param name="nameFirstProjection">Название свойства оси ординат.</param>
        /// <param name="nameSecondProjection">Название свойства оси абсцисс (обязательно численное значение).</param>
        /// <param name="path">Строка вида @"D:\path\to\diagram.docx".</param>
        public void CreateDiagram <T>(Diagrams diagram, List <T> dataLine, string diagramName, string nameFirstProjection, string nameSecondProjection, string path)
        {
            DocX document = DocX.Create(path);

            Series series = GetSeries <T>(dataLine, diagramName, nameFirstProjection, nameSecondProjection);

            switch (diagram)
            {
            case Diagrams.LineChart:
                document.InsertChart(CreateLineChart(series));
                break;

            case Diagrams.PieChart:
                document.InsertChart(CreatePieChart(series));
                break;

            case Diagrams.BarChart:
                document.InsertChart(CreateBarChart(series));
                break;
            }

            document.Save();
        }
示例#8
0
        public void CreateDiagram(IEnumerable <object> data, string diagramName, string name, string value, string path)
        {
            Data        = data.ToList();
            DiagramName = diagramName;
            Name        = name;
            Value       = value;

            string pathDocument = path + ".docx";

            // создаём документ
            DocX document = DocX.Create(pathDocument);

            document.InsertChart(CreateBarChart());

            document.Save();
        }
示例#9
0
        /// <typeparam name="T"></typeparam>
        /// <param name="prods">Список продуктов.</param>
        /// <param name="name">Название свойства содержащего имя продукта.</param>
        /// <param name="count">Название свойства содержащего количество продукта.</param>
        /// <param name="path">Строка вида @"D:\path\to\diagram.docx".</param>
        public void CreateDiagram <T>(List <T> prods, string name, string count, string path)
        {
            DocX doc = DocX.Create(path);

            BarChart barChart = new BarChart();

            barChart.AddLegend(ChartLegendPosition.Top, false);

            Series series = new Series("Products");

            series.Bind(prods, name, count);
            barChart.AddSeries(series);

            doc.InsertChart(barChart);

            doc.Save();
        }
示例#10
0
        /// <summary>
        /// Add a Bar chart to a document.
        /// </summary>
        public static void BarChart()
        {
            Console.WriteLine("\tBarChart()");

            // Creates a document
            using (DocX document = DocX.Create(ChartSample.ChartSampleOutputDirectory + @"BarChart.docx"))
            {
                // Add a title
                document.InsertParagraph("Bar Chart").FontSize(15d).SpacingAfter(50d).Alignment = Alignment.center;

                // Create a bar chart.
                var c = new BarChart();
                c.AddLegend(ChartLegendPosition.Left, false);
                c.BarDirection = BarDirection.Bar;
                c.BarGrouping  = BarGrouping.Standard;
                c.GapWidth     = 200;

                // Create the data.
                var canada = ChartData.CreateCanadaExpenses();
                var usa    = ChartData.CreateUSAExpenses();
                var brazil = ChartData.CreateBrazilExpenses();

                // Create and add series
                var s1 = new Series("Brazil");
                s1.Color = Color.GreenYellow;
                s1.Bind(brazil, "Category", "Expenses");
                c.AddSeries(s1);

                var s2 = new Series("USA");
                s2.Color = Color.LightBlue;
                s2.Bind(usa, "Category", "Expenses");
                c.AddSeries(s2);

                var s3 = new Series("Canada");
                s3.Color = Color.Gray;
                s3.Bind(canada, "Category", "Expenses");
                c.AddSeries(s3);

                // Insert the chart into the document.
                document.InsertParagraph("Expenses(M$) for selected categories per country").FontSize(15).SpacingAfter(10d);
                document.InsertChart(c);

                document.Save();
                Console.WriteLine("\tCreated: BarChart.docx\n");
            }
        }
示例#11
0
        /// <summary>
        /// Add a Line chart to a document.
        /// </summary>
        public static void LineChart()
        {
            Console.WriteLine("\tLineChartt()");

            // Creates a document
            using (DocX document = DocX.Create(ChartSample.ChartSampleOutputDirectory + @"LineChart.docx"))
            {
                // Add a title
                document.InsertParagraph("Line Chart").FontSize(15d).SpacingAfter(50d).Alignment = Alignment.center;

                // Create a line chart.
                var c = new LineChart();
                c.AddLegend(ChartLegendPosition.Left, false);

                // Create the data.
                var canada = ChartData.CreateCanadaExpenses();
                var usa    = ChartData.CreateUSAExpenses();
                var brazil = ChartData.CreateBrazilExpenses();

                // Create and add series
                var s1 = new Series("Brazil");
                s1.Bind(brazil, "Category", "Expenses");
                c.AddSeries(s1);

                var s2 = new Series("USA");
                s2.Bind(usa, "Category", "Expenses");
                c.AddSeries(s2);

                var s3 = new Series("Canada");
                s3.Bind(canada, "Category", "Expenses");
                c.AddSeries(s3);

                // Insert chart into document
                document.InsertParagraph("Expenses(M$) for selected categories per country").FontSize(15).SpacingAfter(10d);
                document.InsertChart(c);

                document.Save();
                Console.WriteLine("\tCreated: LineChart.docx\n");
            }
        }
示例#12
0
        private void Button1_Click(object sender, EventArgs e)
        {
            var saveFileDialog1 = new SaveFileDialog
            {
                Filter      = "Word Document (.docx ,.doc)|*.docx;*.doc|All files (*.*)|*.*",
                FilterIndex = 1
            };

            var openFileDialog = new OpenFileDialog
            {
                Filter      = "Word Document (.docx ,.doc)|*.docx;*.doc|All files (*.*)|*.*",
                FilterIndex = 1,
                Multiselect = false
            };


            try
            {
                if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
                {
                    return;
                }
                // получаем выбранный файл
                string filename = saveFileDialog1.FileName;
                //создаем новый word document
                DocX document = DocX.Create(filename);

                document.InsertParagraph("F*CK");

                document.InsertChart(CreatePieChart());

                document.Save();
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.Message, "Ошибка");
            }
        }
示例#13
0
        private static void PieChart()
        {
            // Create new document.
            using (DocX document = DocX.Create(@"docs\PieChart.docx"))
            {
                // Create chart.
                PieChart c = new PieChart();
                c.AddLegend(ChartLegendPosition.Bottom, false);

                // Create data.
                List <ChartData> company2 = ChartData.CreateCompanyList2();

                // Create and add series
                Series s = new Series("Apple");
                s.Bind(company2, "Mounth", "Money");
                c.AddSeries(s);

                // Insert chart into document
                document.InsertParagraph("Diagram").FontSize(20);
                document.InsertChart(c);
                document.Save();
            }
        }
示例#14
0
        private static void Chart3D()
        {
            // Create new document.
            using (DocX document = DocX.Create(@"docs\3DChart.docx"))
            {
                // Create chart.
                BarChart c = new BarChart();
                c.View3D = true;

                // Create data.
                List <ChartData> company1 = ChartData.CreateCompanyList1();

                // Create and add series
                Series s = new Series("Microsoft");
                s.Color = Color.GreenYellow;
                s.Bind(company1, "Mounth", "Money");
                c.AddSeries(s);

                // Insert chart into document
                document.InsertParagraph("3D Diagram").FontSize(20);
                document.InsertChart(c);
                document.Save();
            }
        }
示例#15
0
        private void ExitProtokol_Load(object sender, EventArgs e)
        {
            // Подключение к БД
            con.Open();

            // Выбор количества выбранных вариантов ответа на этапе Феноменология и анамнез
            KolvoSelectedCB = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select count(*) as 'kolvo' from OtvSelected where users_id = " + Program.user + " and FormOtvSelected = 'Fenom'"));

            // Если количество выбранных вариантов ответа больше 0
            if (KolvoSelectedCB > 0)
            {
                // Запись данных в Протокол
                Program.Insert = "Окно - Выбранные 'Галочки' на этапе Феноменологии:";
                wordinsert.Ins();

                // Заполнение таблицы datagr
                new SQL_Query().CreateDatagr("select InfoSelected from OtvSelected where users_id = " + Program.user + " and FormOtvSelected = 'Fenom'", "OtvSelected", panel1, datagr);

                // Запись данных в Протокол
                for (int i = 0; i < KolvoSelectedCB; i++)
                {
                    Program.Insert = datagr.Rows[i].Cells[0].Value.ToString();
                    wordinsert.Ins();
                }

                // Выбор количества всех вариантов ответа на этапе Феноменология и анамнез
                int KolvoALLCB = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select count(*) as 'kolvo' from CBFormFill where zadacha_id = " + Program.NomerZadachi + " and FormCB = 'Fenom'"));

                // Запись данных в Протокол
                Program.Insert = "Выбрано " + KolvoSelectedCB + " из " + KolvoALLCB + "  'Галочек'";
                wordinsert.Ins();
            }

            // Выбор количества выбранных вариантов ответа на этапе Гипотезы
            KolvoSelectedCB = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select count(*) as 'kolvo' from OtvSelected where users_id = " + Program.user + " and FormOtvSelected = 'Teor'"));

            // Если количество выбранных вариантов ответа больше 0
            if (KolvoSelectedCB > 0)
            {
                // Запись данных в Протокол
                Program.Insert = "Окно - Выбранные 'Галочки' на этапе Гипотезы:";
                wordinsert.Ins();

                // Заполнение таблицы datagr1
                new SQL_Query().CreateDatagr("select InfoSelected from OtvSelected where users_id = " + Program.user + " and FormOtvSelected = 'Teor'", "OtvSelected", panel1, datagr1);

                // Запись данных в Протокол
                for (int i = 0; i < KolvoSelectedCB; i++)
                {
                    Program.Insert = datagr1.Rows[i].Cells[0].Value.ToString();
                    wordinsert.Ins();
                }

                // Выбор количества всех вариантов ответа на этапе Гипотезы
                int KolvoALLCB = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select count(*) as 'kolvo' from CBFormFill where zadacha_id = " + Program.NomerZadachi + " and FormCB = 'Teor'"));

                // Запись данных в протокол
                Program.Insert = "Выбрано " + KolvoSelectedCB + " из " + KolvoALLCB + "  'Галочек'";
                wordinsert.Ins();
            }

            // Закрываем документ
            Program.Insert = "Окончание протокола";
            wordinsert.Ins();

            // Если студент заходил на этапы
            if (Program.StageName.Count != 0)
            {
                // Открываем документ
                DocX document = DocX.Load(Program.doc);


                // создаём столбцовую диаграмму
                BarChart barChart = new BarChart();
                // создаём набор данных и добавляем в диаграмму
                barChart.AddSeries(TestData.GetSeriesFirst());
                // добавляем столбцовую диаграмму
                document.InsertChart(barChart);


                // создаём линейную диаграмму
                LineChart lineChart = new LineChart();
                // создаём набор данных и добавляем на диаграмму
                lineChart.AddSeries(TestData.GetSeriesSecond());
                // добавляем линейную диаграмму
                document.InsertChart(lineChart);


                // сохраняем документ
                document.Save();
            }
        }
示例#16
0
        public NewBlank
        (
            System.Windows.Forms.DataVisualization.Charting.Chart chartСпросЗаКвартал,
            System.Windows.Forms.DataVisualization.Charting.Chart chartСпросЗаМесяц
        )
        {
            string ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Resources\doors.mdf;Integrated Security=True;Connect Timeout=30";

            Directory.CreateDirectory(Environment.CurrentDirectory + $@"\Отчеты по продажам\{DateTime.Now.Year}\{НазваниеМесяца(DateTime.Now.Month, true)}\");
            string        path       = Environment.CurrentDirectory + $@"\Отчеты по продажам\{DateTime.Now.Year}\{НазваниеМесяца(DateTime.Now.Month, true)}\Отчет по продажам и предыдущий квартал ({НазваниеМесяца(DateTime.Now.Month, true)} {DateTime.Now.Year}).docx";
            SqlConnection Connection = new SqlConnection(ConnectionString);

            DocX document = DocX.Create(path);

            document.MarginTop    = 30;
            document.MarginLeft   = 30;
            document.MarginRight  = 30;
            document.MarginBottom = 30;

            document.InsertParagraph($"Дата составления: {DataReturner(DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year)}\n").
            Font("Times New Roman").
            FontSize(11).
            Alignment = Alignment.right;

            document.InsertParagraph("Отчет о продажах за текущий месяц и предыдущий квартал\n\n").
            Font("Times New Roman").
            FontSize(28).
            Bold().
            Alignment = Alignment.center;

            document.InsertParagraph("На приведенном ниже графике отображен график спроса дверей за месяц:\n")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.left;

            #region Составление и заполнение графиков продаж за месяц

            PieChart WordChart_СпросЗаМесяц = new PieChart();
            WordChart_СпросЗаМесяц.AddLegend(ChartLegendPosition.Right, false);

            try
            {
                Connection.Open();
            }
            catch (SqlException)
            {
                MessageBox.Show("Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД (См. справку), файлы MDF и LDF не должны быть помечены \"Только для чтения\". \n\nВозможно стоит попробовать отключить БД и запустить программу еще раз.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            SqlCommand comm     = new SqlCommand("SELECT count(id_profil) FROM Profili", Connection);
            object     езультат = comm.ExecuteScalar();

            if (езультат != null)
            {
                int Количество_профилей = (int)езультат;

                List <string> Name   = new List <string>();
                List <int>    Value  = new List <int>();
                Series        series = new Series("Спрос товара за месяц, группировка по профилю");

                for (int i = 0; i < Количество_профилей; i++)
                {
                    comm = new SqlCommand($"SELECT profil FROM Profili where id_profil={i + 1}", Connection);
                    string НазваниеПрофиля = (string)comm.ExecuteScalar();
                    comm     = new SqlCommand($"select kolvo from Zakazy where id_profil = {i + 1} and data between '{DateTime.Now.Year}/{DateTime.Now.Month}/01' and '{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"{НазваниеПрофиля} ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                }
                series.Bind(Name, Value);
                WordChart_СпросЗаМесяц.AddSeries(series);
            }
            Connection.Close();
            document.InsertChart(WordChart_СпросЗаМесяц);
            #endregion

            document.InsertParagraph("\n\nА также диаграмма продаж за предыдущий квартал. Она предоставлена ниже:\n")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.left;

            #region Составление и заполнение графиков продаж за предыдущий квартал

            BarChart WordChart_СпросЗаКвартал = new BarChart();
            WordChart_СпросЗаКвартал.AddLegend(ChartLegendPosition.Right, false);
            WordChart_СпросЗаКвартал.BarDirection = BarDirection.Column;
            WordChart_СпросЗаКвартал.BarGrouping  = BarGrouping.Clustered;
            WordChart_СпросЗаКвартал.GapWidth     = 200;

            try
            {
                Connection.Open();
            }
            catch (SqlException)
            {
                MessageBox.Show("Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД (См. справку), файлы MDF и LDF не должны быть помечены \"Только для чтения\". \n\nВозможно стоит попробовать отключить БД и запустить программу еще раз.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            comm     = new SqlCommand("SELECT count(id_profil) FROM Profili", Connection);
            езультат = comm.ExecuteScalar();

            if (езультат != null)
            {
                List <string> Name  = new List <string>();
                List <int>    Value = new List <int>();

                switch (Statistics.КакойКварталОтобразить())
                {
                case 1:
                {
                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year - 1}/10/01' and " +
                                          $"'{DateTime.Now.Year - 1}/10/{DateTime.DaysInMonth(DateTime.Now.Year - 1, 10)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Октябрь ({DateTime.Now.Year - 1}) ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Октябрь ({DateTime.Now.Year - 1}) (0)");
                        Value.Add(0);
                    }


                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year - 1}/11/01' and " +
                                          $"'{DateTime.Now.Year - 1}/11/{DateTime.DaysInMonth(DateTime.Now.Year - 1, 11)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Ноябрь ({DateTime.Now.Year - 1}) ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Ноябрь ({DateTime.Now.Year - 1}) (0)");
                        Value.Add(0);
                    }

                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year - 1}/12/01' and " +
                                          $"'{DateTime.Now.Year - 1}/12/{DateTime.DaysInMonth(DateTime.Now.Year - 1, 12)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Декабрь ({DateTime.Now.Year - 1}) ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Декабрь ({DateTime.Now.Year - 1}) (0)");
                        Value.Add(0);
                    }
                }
                break;

                case 2:
                {
                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year}/01/01' and " +
                                          $"'{DateTime.Now.Year}/01/{DateTime.DaysInMonth(DateTime.Now.Year, 01)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Январь ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Январь (0)");
                        Value.Add(0);
                    }
                    Name.Add($"Январь");
                    Value.Add((int)comm.ExecuteScalar());

                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year}/02/01' and " +
                                          $"'{DateTime.Now.Year}/02/{DateTime.DaysInMonth(DateTime.Now.Year, 02)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Февраль ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Февраль (0)");
                        Value.Add(0);
                    }

                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year}/03/01' and " +
                                          $"'{DateTime.Now.Year}/03/{DateTime.DaysInMonth(DateTime.Now.Year, 03)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Март ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Март (0)");
                        Value.Add(0);
                    }
                }
                break;

                case 3:
                {
                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year}/04/01' and " +
                                          $"'{DateTime.Now.Year}/04/{DateTime.DaysInMonth(DateTime.Now.Year, 04)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Апрель ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Апрель (0)");
                        Value.Add(0);
                    }

                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year}/05/01' and " +
                                          $"'{DateTime.Now.Year}/05/{DateTime.DaysInMonth(DateTime.Now.Year, 05)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Май ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Май (0)");
                        Value.Add(0);
                    }

                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year}/06/01' and " +
                                          $"'{DateTime.Now.Year}/06/{DateTime.DaysInMonth(DateTime.Now.Year, 06)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Июнь ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Июнь (0)");
                        Value.Add(0);
                    }
                }
                break;

                case 4:
                {
                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year}/07/01' and " +
                                          $"'{DateTime.Now.Year}/07/{DateTime.DaysInMonth(DateTime.Now.Year, 07)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Июль ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Июль (0)");
                        Value.Add(0);
                    }

                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year}/08/01' and " +
                                          $"'{DateTime.Now.Year}/08/{DateTime.DaysInMonth(DateTime.Now.Year, 08)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Август ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Август (0)");
                        Value.Add(0);
                    }

                    comm = new SqlCommand($"SELECT sum(kolvo) FROM Zakazy where data between " +
                                          $"'{DateTime.Now.Year}/09/01' and " +
                                          $"'{DateTime.Now.Year}/09/{DateTime.DaysInMonth(DateTime.Now.Year, 09)}'", Connection);
                    езультат = comm.ExecuteScalar();
                    if (езультат != null)
                    {
                        Name.Add($"Сентябрь ({(int)Результат})");
                        Value.Add((int)езультат);
                    }
                    else
                    {
                        Name.Add($"Сентябрь (0)");
                        Value.Add(0);
                    }
                }
                break;
                }

                var series = new Series("Статистика проданных дверей за квартал");
                series.Bind(Name, Value);
                WordChart_СпросЗаКвартал.AddSeries(series);
            }
            Connection.Close();
            document.InsertChart(WordChart_СпросЗаКвартал);

            #endregion

            try
            {
                document.Save();
            }
            catch (IOException)
            {
                MessageBox.Show($"Ошибка при сохранении. \n\nНе удалось записать в файл. Убедитесь что требуемый файл ({path}) закрыт. \n\nИгнорируйте следующее сообщение");
            }
            MessageBox.Show($"Отчет создан. Он находится в директории: \"{path}\".");
        }
示例#17
0
        /// <summary>
        /// Create a document and add headers/footers with tables and pictures, paragraphs and charts.
        /// </summary>
        public static void CompanyReport()
        {
            Console.WriteLine("\tCompanyReport()");

            // Create a new document.
            using (DocX document = DocX.Create(MiscellaneousSample.MiscellaneousSampleOutputDirectory + @"CompanyReport.docx"))
            {
                // Add headers and footers.
                document.AddHeaders();
                document.AddFooters();

                // Define the pages header's picture in a Table. Odd and even pages will have the same headers.
                var oddHeader        = document.Headers.Odd;
                var headerFirstTable = oddHeader.InsertTable(1, 2);
                headerFirstTable.Design  = TableDesign.ColorfulGrid;
                headerFirstTable.AutoFit = AutoFit.Window;
                var upperLeftParagraph = oddHeader.Tables[0].Rows[0].Cells[0].Paragraphs[0];
                var logo = document.AddImage(MiscellaneousSample.MiscellaneousSampleResourcesDirectory + @"Phone.png");
                upperLeftParagraph.AppendPicture(logo.CreatePicture(30, 100));
                upperLeftParagraph.Alignment = Alignment.left;

                // Define the pages header's text in a Table. Odd and even pages will have the same footers.
                var upperRightParagraph = oddHeader.Tables[0].Rows[0].Cells[1].Paragraphs[0];
                upperRightParagraph.Append("Toms Telecom Annual report").Color(Color.White);
                upperRightParagraph.SpacingBefore(5d);
                upperRightParagraph.Alignment = Alignment.right;

                // Define the pages footer's picture in a Table.
                var oddFooter        = document.Footers.Odd;
                var footerFirstTable = oddFooter.InsertTable(1, 2);
                footerFirstTable.Design  = TableDesign.ColorfulGrid;
                footerFirstTable.AutoFit = AutoFit.Window;
                var lowerRightParagraph = oddFooter.Tables[0].Rows[0].Cells[1].Paragraphs[0];
                lowerRightParagraph.AppendPicture(logo.CreatePicture(30, 100));
                lowerRightParagraph.Alignment = Alignment.right;

                // Define the pages footer's text in a Table
                var lowerLeftParagraph = oddFooter.Tables[0].Rows[0].Cells[0].Paragraphs[0];
                lowerLeftParagraph.Append("Toms Telecom 2016").Color(Color.White);
                lowerLeftParagraph.SpacingBefore(5d);

                // Define Data in first page : a Paragraph.
                var paragraph = document.InsertParagraph();
                paragraph.AppendLine("Toms Telecom Annual report\n2016").Bold().FontSize(35).SpacingBefore(150d);
                paragraph.Alignment = Alignment.center;
                paragraph.InsertPageBreakAfterSelf();

                // Define Data in second page : a Bar Chart.
                document.InsertParagraph("").SpacingAfter(150d);
                var barChart    = new BarChart();
                var sales       = CompanyData.CreateSales();
                var salesSeries = new Series("Sales Per Month");
                salesSeries.Color = Color.GreenYellow;
                salesSeries.Bind(sales, "Month", "Sales");
                barChart.AddSeries(salesSeries);
                document.InsertChart(barChart);
                document.InsertParagraph("Sales were 11% greater in 2016 compared to 2015, with the usual drop during spring time.").SpacingBefore(35d).InsertPageBreakAfterSelf();

                // Define Data in third page : a Line Chart.
                document.InsertParagraph("").SpacingAfter(150d);
                var lineChart  = new LineChart();
                var calls      = CompanyData.CreateCallNumber();
                var callSeries = new Series("Call Number Per Month");
                callSeries.Bind(calls, "Month", "Calls");
                lineChart.AddSeries(callSeries);
                document.InsertChart(lineChart);
                document.InsertParagraph("The number of calls received was much lower in 2016 compared to 2015, by 31%. Winter is still the busiest time of year.").SpacingBefore(35d);

                // Save this document to disk.
                document.Save();
                Console.WriteLine("\tCreated: CompanyReport.docx\n");
            }
        }