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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
99
else command.Parameters.AddWithValue("Sum",
Convert.ToDouble(row[6]));
command.Parameters.AddWithValue("INN",
Convert.ToString(row[7]));
command.Parameters.AddWithValue("ResponsibleBlock",
Convert.ToString(row[8]));
command.Parameters.AddWithValue("ResponsibleDepartment",
Convert.ToString(row[9]));
if (Convert.IsDBNull(row[10]))
command.Parameters.AddWithValue("Month",
Convert.ToDateTime("01.01.2222"));
else
command.Parameters.AddWithValue("Month",
Convert.ToDateTime(row[10]));
command.Parameters.AddWithValue("GP",
Convert.ToString(row[11]));
command.Parameters.AddWithValue("OrganizationLiquidated",
Convert.ToString(row[12]));
command.Parameters.AddWithValue("PeriodOfLimitation",
Convert.ToString(row[13]));
if (Convert.IsDBNull(row[11]))
{
command.Parameters.AddWithValue("KindOfDZ",
Convert.ToString("-"));
}
else
{//определение вида ДЗ
if (Convert.ToBoolean(row[11]))
command.Parameters.AddWithValue("KindOfDZ",
Convert.ToString("Нормальная"));
100
else if (Convert.ToInt32(row[13]) > 35)
command.Parameters.AddWithValue("KindOfDZ",
Convert.ToString("Безнадежная"));
else if (Convert.ToBoolean(row[12]))
command.Parameters.AddWithValue("KindOfDZ",
Convert.ToString("Безнадежная"));
else command.Parameters.AddWithValue("KindOfDZ",
Convert.ToString("Сомнительная"));
}
command.ExecuteNonQuery();
}
}
Метод fillcombobox () заполняет combobox вариантами выбора из базы
данных.
Листинг 1.5. Метод fillcombobox ()
private void fillcombobox(ComboBox cb, SqlCommand command, string
name_of_column_in_table, int DropDownWidth, string cb_text) //метод для
заполнения элемента ComboBox
{//заполнение combobox из БД
command.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = command;
da.Fill(ds, "DZ");
cb.DataSource = ds.Tables[0];
cb.DisplayMember = name_of_column_in_table;
cb.ValueMember = name_of_column_in_table;
cb.DropDownWidth = DropDownWidth;
cb.DropDownStyle = ComboBoxStyle.DropDownList;
101
cb.Text = cb_text;
}
Метод comboBox1_SelectedIndexChanged () получает выбранный элемент
комбобокса и создает на основе выбора запрос к БД, а затем выводит результат.
Листинг 1.6. Метод comboBox1_SelectedIndexChanged ()
private void comboBox1_SelectedIndexChanged(object sender, EventArgs
e)
{
string ClientName =
comboBoxClient1.SelectedValue.ToString();//получаем имя выбранного клиента
SqlCommand command = new SqlCommand("SELECT " +
columnName + " FROM DZ WHERE Client=N'" + ClientName + "'",
sqlConnection);//запрос в БД
command.ExecuteNonQuery();//выполняем команду
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = command;//устанавливаем команду
da.Fill(ds, "DZ");
dataGridView1.DataSource = ds.Tables[0];//выводим в DataGridView
tabControl1.SelectTab("Table");
double balans = 0;//переменная для поля Сумма
foreach (DataGridViewRow row in dataGridView1.Rows)//суммируем
все отображаемые строки
{
double incom;
double.TryParse(row.Cells[7].Value.ToString().Replace(".", ","), out
incom);
balans += incom;
}
102
NumberFormatInfo nfi = new NumberFormatInfo();//формат числа с
пробелами и двумя знаками после запятой
nfi.NumberGroupSeparator = " ";//разделитель
textBox1.Text = balans.ToString("N", nfi);
}
Метод выгрузитьВExcelToolStripMenuItem_Click () выгружает в Excel
таблицу, выбранную пользователем, для внесения комментариев, а также
защищает книгу от изменения кроме столбца с комментариями.
Листинг 1.7. Метод выгрузитьВExcelToolStripMenuItem_Click()
private void выгрузитьВExcelToolStripMenuItem_Click(object sender,
EventArgs e)//метод выгрузки таблицы в Excel
{
Microsoft.Office.Interop.Excel.Application ExcelApp = new
Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook ExcelWorkBook;
Microsoft.Office.Interop.Excel.Worksheet ExcelWorkSheet;
ExcelWorkBook =
ExcelApp.Workbooks.Add(System.Reflection.Missing.Value);//Книга
ExcelWorkSheet =
(Microsoft.Office.Interop.Excel.Worksheet)ExcelWorkBook.Worksheets.get_Item(1);/
/Таблица
for (int i = 0; i < dataGridView1.Rows.Count; i++)// цикл для каждой
строки
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)//для каждого
столбца
{
ExcelApp.Cells[1, j + 1] =
dataGridView1.Columns[j].HeaderText;//копирем заголовок таблиццы с полями
103
ExcelApp.Cells[i + 2, j + 1] =
dataGridView1.Rows[i].Cells[j].Value;//копируем значения ячеек
}
}
//защита книги на дипозоне А:М
(ExcelApp.ActiveWorkbook.Sheets[1]).EnableSelection =
Microsoft.Office.Interop.Excel.XlEnableSelection.xlUnlockedCells;
string protectionPassword = "1234";//задаем пароль
(ExcelApp.ActiveWorkbook.Sheets[1]).Protect(Password:
protectionPassword, AllowFormattingCells: false);//устанавливаем пароль
(ExcelApp.ActiveWorkbook.Sheets[1]).Protection.IsProtected = true;
(ExcelApp.ActiveWorkbook.Sheets[1]).ProtectedRanges.Add("editable", new
Microsoft.Office.Interop.Excel.ExcelAddress("A:M"));//защищаем диапозон ячеек
ExcelApp.Visible = true;//Отображаем созданный Excel файл
ExcelApp.UserControl = true;
}
Метод makeTop () отбирает топ 10 худших клиентов и выводит их в
таблицу, сортирую по убыванию.
Листинг 1.8. Метод makeTop()
private void makeTop()
{
string MonthName =
comboBoxMonthTop.SelectedValue.ToString();//получаем выбранный месяц
SqlCommand command = new SqlCommand("SELECT TOP 10 " +
columnName + " FROM DZ WHERE Month=right(convert(varchar, '" + MonthName
+ "', 106), 8) ORDER BY Sum DESC", sqlConnection);//создаем запрос
command.ExecuteNonQuery();//выполняем запрос
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;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)