
BFI_DOPMAT / Построение диаграммы
.pdf#pragma endregion
//Программа, используя элементы управления Chart и DataGridView, выводит
//график (диаграмму) зависимости объемов продаж от времени по месяцам.
//При этом в качестве источника данных указываем объект класса
DataTable
//~ ~ ~ ~ ~ ~ ~ ~ ~ ~
//Отображать ли столбики гистограммы в виде цилиндров:
Boolean Цилиндр;
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Цилиндр = false;
this->Text = "Щелкните на графике"; DataTable ^ Таблица = gcnew DataTable();
//В этой таблице заказываем две колонки "Месяц" и "Объем продаж":
Таблица->Columns->Add("Месяц", String::typeid);
//В C#: Таблица.Columns.Add("Месяц", typeof(String));
//Значения во второй колонке назначаем типа long:
Таблица->Columns->Add("Объем продаж", long::typeid);
//В C#: Таблица.Columns.Add("Объем продаж", typeof(long));
//Заполняем первую строку (ряд) в таблице:
DataRow ^ Ряд = Таблица->NewRow();
Ряд["Месяц"] = "Май"; Ряд["Объем продаж"] = 15;
Таблица->Rows->Add(Ряд);
//Добавляем вторую строку в таблице:
Ряд = Таблица->NewRow();
Ряд["Месяц"] = "Июнь"; Ряд["Объем продаж"] = 35;
Таблица->Rows->Add(Ряд);
//Добавляем третью строку:
Ряд = Таблица->NewRow();
Ряд["Месяц"] = "Июль"; Ряд["Объем продаж"] = 65;
Таблица->Rows->Add(Ряд);
// Добавляем четвертую строку:
Ряд = Таблица->NewRow();
Ряд["Месяц"] = "Авг"; Ряд["Объем продаж"] = 85;
Таблица->Rows->Add(Ряд);
// Добавляем пятую строку:
Ряд = Таблица->NewRow();
Ряд["Месяц"] = "Сент"; Ряд["Объем продаж"] = 71;
Таблица->Rows->Add(Ряд);
//Составленную таблицу указываем в качестве источника данных: chart1->DataSource = Таблица;
//На одном графике можно изобразить несколько зависимостей.
//Например, первая зависимость - объемы продаж по указанным
//месяцам в 2009 году, и вторая зависимость - продажи по
//тем же месяцам в 2010 году.
//В данном графике мы покажем только одну зависимость, данные
//для отображения этой зависимости назовем "Series1"
//По горизонтальной оси откладываем названия месяцев:
chart1->Series["Series1"]->XValueMember = "Месяц"; // А по вертикальной оси откладываем объемы продаж:
chart1->Series["Series1"]->YValueMembers = "Объем продаж"; // Название графика (диаграммы): chart1->Titles->Add("Объемы продаж по месяцам");
// Задаем тип диаграммы - столбиковая гистограмма: chart1->Series["Series1"]->ChartType = System::Windows::Forms::
DataVisualization::Charting::SeriesChartType::Column;
//Тип диаграммы может быть другим, например: Pie, Line и др. chart1->Series["Series1"]->Color = Color::Aqua;
//Легенду на графике не отображаем:
chart1->Series["Series1"]->IsVisibleInLegend = false;
//Привязка графика к источнику данных: chart1->DataBind();
//Для сетки данных указываем источник данных dataGridView1->DataSource = Таблица;
}
private: System::Void chart1_Click(System::Object^ sender, System::EventArgs^ e)
{
//Обработка события "щелчок на графике" Цилиндр = !Цилиндр;
//Изображение столбиков гистограммы в виде цилиндра: if (Цилиндр == true)
} };
}

chart1->Series["Series1"]["DrawingStyle"] = "Cylinder"; else
chart1->Series["Series1"]["DrawingStyle"] = "Default";