private static void BarChart() { // Create new document. using (DocX document = DocX.Create(@"docs\BarChart.docx")) { // Create chart. BarChart c = new BarChart(); c.BarDirection = BarDirection.Column; c.BarGrouping = BarGrouping.Standard; c.GapWidth = 400; 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(); } }
private static Chart CreateBarChart(Series series) { BarChart pieChart = new BarChart(); pieChart.AddLegend(ChartLegendPosition.Left, false); pieChart.AddSeries(series); return(pieChart); }
private static Chart CreateBarChart(Info info) { BarChart barChart = new BarChart(); barChart.AddLegend(ChartLegendPosition.Top, false); barChart.AddSeries(GetSeriesFirst(info)); return(barChart); }
private static Chart CreateBarChart(Series series) { // создаём столбцовую диаграмму BarChart barChart = new BarChart(); // отображаем легенду сверху диаграммы barChart.AddLegend(ChartLegendPosition.Top, false); // создаём набор данных и добавляем в диаграмму barChart.AddSeries(series); return(barChart); }
private Chart CreateBarChart() { BarChart barChart = new BarChart(); barChart.AddLegend(ChartLegendPosition.Top, false); var series = new Series(DiagramName); series.Bind(Data, Name, Value); barChart.AddSeries(series); return(barChart); }
/// <summary> /// Add a Bar chart to a document. /// </summary> public static void BarChart() { Console.WriteLine("\tBarChart()"); // Creates a document using (var 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, 350f, 550f); document.Save(); Console.WriteLine("\tCreated: BarChart.docx\n"); } }
/// <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(); }
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}\"."); }