Дипломная работа: Автоматизация услуг почтовой связи для Почты России

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
104
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = command;//устанавливаем команду для
SqlDataAdapter
da.Fill(ds, "DZ");//заполняем DataSet
dataGridViewTOP.DataSource = ds.Tables[0];//выводим в таблицу
makeTopgraf();//строим диаграмму
}
Метод makeTopgraf () строит диаграмму по клиентам топ 10.
Листинг 1.9.Метод makeTopgraf()
private void makeTopgraf()
{
chartTop.DataSource = null;//очистка графика
chartTop.Series.Clear();
chartTop.DataBind();
chartTop.Series.Add("Series1");
string MonthName =
comboBoxMonthTop.SelectedValue.ToString();//получаем месяц
SqlCommand command1 = new SqlCommand("SELECT TOP 10
Client AS Клиент, Sum AS Сумма FROM DZ WHERE
Month=right(convert(varchar, '" + MonthName + "', 106), 8) ORDER BY Sum
DESC", sqlConnection);//создаем запрос
SqlDataAdapter da1 = new SqlDataAdapter();
DataSet ds1 = new DataSet();
da1.SelectCommand = command1;
da1.Fill(ds1, "DZ");
List<string> axisLabel = new List<string>();
for (int pointIndex = 0; pointIndex < ds1.Tables[0].Rows.Count;
pointIndex++)//для каждого столбца на диаграмме
105
{
chartTop.Series["Series1"].Points.AddY(ds1.Tables[0].Rows[pointIndex][1]);//присва
иваем зачение
chartTop.ChartAreas[0].AxisX.Title = "Месяц";//добавляем
название осей
chartTop.ChartAreas[0].AxisY.Title = "Сумма";
chartTop.Series["Series1"].Points[pointIndex].AxisLabel =
ds1.Tables[0].Rows[pointIndex][0].ToString();//добавляем названия месяцев
chartTop.ChartAreas["Default"].AxisX.IsMarginVisible =
false;//делаем, чтобы диаграмма не начиналаь с нуля
}
UpdateChartSettings();//обновляем диаграмму
}
Метод buildChartBtn_Click () строит круговую диаграмму по почтамтам,
отделам или видам ДЗ.
Листинг 1.10.Метод buildChartBtn_Click()
private void buildChartBtn_Click(object sender, EventArgs e)//построение
круговой диаграммы
{
Chart1.DataSource = null;//очистка графика
Chart1.Series.Clear();
Chart1.DataBind();
SqlCommand command = new SqlCommand();
if (radioButtonUnit.Checked)//если выбрано по почтамтам
{
command = new SqlCommand("SELECT CONCAT(сумма,' ',
Почтамт) AS Почтамт, Summa AS Сумма FROM (SELECT Unit AS Почтамт,
Replace(Format(SUM(Sum), 'N'),',',' ') AS Сумма, SUM(Sum) AS Summa FROM DZ
106
WHERE Month='" + comboBoxMonthToChart.SelectedValue.ToString() + "' GROUP
BY Unit) AS th", sqlConnection);
SqlDataReader dr = command.ExecuteReader();
Chart1.DataBindTable(dr, "Почтамт");
Chart1.Series[0].ChartType = SeriesChartType.Pie;//выбираем тип
диаграммы
Chart1.Series[0].IsVisibleInLegend = false;//легенда отключена
Chart1.Series[0]["PieLabelStyle"] = "Outside";//стиль подписи
частей дигараммы
Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;//3D вид
диаграммы
Chart1.Series[0]["PieDrawingStyle"] = "SoftEdge";//стиль
рисования диаграммы
dr.Close();
}
else if (radioButtonKind.Checked)//если выбрано по видам
{
command = new SqlCommand("SELECT CONCAT(сумма,' ', Вид)
AS Вид, Summa AS Сумма FROM (SELECT KindOfDZ AS Вид,
Replace(Format(SUM(Sum), 'N'),',',' ') AS Сумма, SUM(Sum) AS Summa FROM DZ
WHERE Month='" + comboBoxMonthToChart.SelectedValue.ToString() + "' GROUP
BY KindOfDZ) AS th", sqlConnection);
SqlDataReader dr = command.ExecuteReader();
Chart1.DataBindTable(dr, "Вид");
Chart1.Series[0].ChartType = SeriesChartType.Pie;
Chart1.Series[0].IsVisibleInLegend = false;
Chart1.Series[0]["PieLabelStyle"] = "Outside";
Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;
Chart1.Series[0]["PieDrawingStyle"] = "SoftEdge";
dr.Close();
107
}
else//если выбрано по отделам
{
command = new SqlCommand("SELECT CONCAT(сумма,' ',
Отдел) AS Отдел, Summa AS Сумма FROM (SELECT ResponsibleDepartment AS
Отдел, Replace(Format(SUM(Sum), 'N'),',',' ') AS Сумма, SUM(Sum) AS Summa
FROM DZ WHERE Month='" + comboBoxMonthToChart.SelectedValue.ToString()
+ "' GROUP BY ResponsibleDepartment) AS th", sqlConnection);
SqlDataReader dr = command.ExecuteReader();
Chart1.DataBindTable(dr, "Отдел");
Chart1.Series[0].ChartType = SeriesChartType.Pie;
Chart1.Series[0].IsVisibleInLegend = false;
Chart1.Series[0]["PieLabelStyle"] = "Outside";
Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;
Chart1.Series[0]["PieDrawingStyle"] = "SoftEdge";
dr.Close();
}
}
Метод graf () задает параметры для графика общей суммы ДЗ
Листинг 1.11.Метод graf()
private void graf()
{//задаем стиль для графика
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new
System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Series series1 =
new System.Windows.Forms.DataVisualization.Charting.Series();
this.chart3 = new
System.Windows.Forms.DataVisualization.Charting.Chart();
this.SuspendLayout();
108
chartArea1.AxisX.LineColor =
System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))),
((int)(((byte)(64)))), ((int)(((byte)(64)))));
chartArea1.AxisX.MajorGrid.LineColor =
System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))),
((int)(((byte)(64)))), ((int)(((byte)(64)))));
chartArea1.AxisY.LabelStyle.Font = new
System.Drawing.Font("Trebuchet MS", 8.25F, System.Drawing.FontStyle.Bold);
chartArea1.AxisY.LineColor =
System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))),
((int)(((byte)(64)))), ((int)(((byte)(64)))));
chartArea1.AxisY.MajorGrid.LineColor =
System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))),
((int)(((byte)(64)))), ((int)(((byte)(64)))));
chartArea1.BackColor =
System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(165)))),
((int)(((byte)(191)))), ((int)(((byte)(228)))));
chartArea1.BackGradientStyle =
System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom;
chartArea1.BackSecondaryColor = System.Drawing.Color.White;
chartArea1.BorderColor =
System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))),
((int)(((byte)(64)))), ((int)(((byte)(64)))));
chartArea1.BorderDashStyle =
System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;
chartArea1.Name = "Default";
chartArea1.Position.Auto = false;
chartArea1.Position.Height = 94F;
chartArea1.Position.Width = 94F;
chartArea1.Position.X = 2F;
chartArea1.Position.Y = 2F;
Источник: https://baza.diplomsite.ru/previewfile/2349