Файл: Отчет по производственной практике (научноисследовательская работа).docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 177

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
хранить и удалять информацию, выполнять поиск и фильтрацию по выбранным критериям.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Агальцов В.П. Базы данных. В 2-х кн. Кн. 2. Распределенные и удаленные базы данных: Учебник / В.П. Агальцов. М.: ИД ФОРУМ: НИЦ Инфра-М, 2019. – 271 с.

  2. Абрамян М. В. Visual C# на примерах. – М.: БХВ-Петербург, 2016. – 436 c.

  3. Бьянкуцци, Ф. Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования // Ф. Бьянкуцци, Ш. Уорден. – СПб.: Символ-плюс, 2018. – 608 c.

  4. Вагнер, Б. С# Эффективное программирование // Билл Вагнер. – М.: ЛОРИ, 2017. – 320 c.

  5. Гергель, В.П. Современные языки и технологии параллельного программирования: Учебник / В.П. Гергель. – М.: МГУ, 2019. – 408 c.

  6. Ишкова, Э. А. Самоучитель С#. Начала программирования / Э.А. Ишкова. – М.: Наука и техника, 2018. – 496 c.

  7. Колесников А. П. Методы численного анализа, изложенные на языке формул и алгоритмическом языке C#. – М.: Высшая школа, 2017. – 414 c.

  8. Рихтер, Д. CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C#. – СПб: Питер, 2018. – 896 c.

  9. Хейлсберг, А. Язык программирования C#. Классика Computers Science / А. Хейлсберг, М. Торгерсен, С. Вилтамут. – СПб.: Питер, 2018. – 784 c.

  10. Диаграмма вариантов использования: [Электронный ресурс]. URL: https://www.sites.google.com/site/metodsybd/blok-4-sredstvaproektirovania/4-1-diagramma-variantov-ispolzovania.html (дата обращения: 03.04.2022).

  11. Алгоритмы редактирования: [Электронный ресурс]. URL: https://robotlandia.ru/abct2/0206add1.html (дата обращения: 15.04.2022).

  12. Методы и способы устранения ошибок: [Электронный ресурс]. URL: https://studwood.ru/1586509/tovarovedenie/metody_sposoby_ustraneniya_oshibok.html (дата обращения: 6.05.2022).


ПРИЛОЖЕНИЯ

Приложение 1

Листинг программы

Orders.cs

using MaterialSkin.Controls;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace СтройМирЛаб

{

public partial class Orders : MaterialForm

{

public string source =

@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\СтройМирЛаб.mdf;Integrated Security=True;Connect Timeout=30";
public string query = "SELECT dbo.Заказы.ID_Заказа, dbo.Клиенты.ФИО, dbo.Клиенты.Организация, dbo.Продукция.Груз, dbo.Сотрудники.ФИО AS о, dbo.Стоимость_за_расстояние.Расстояние, dbo.Заказы.Кол_во_единиц_измерения, dbo.Продукция.Единица_измерения, dbo.Заказы.Итого_к_сумме, dbo.Заказы.Дата_заказа, dbo.Заказы.Дата_поставки, dbo.Заказы.Статус_оплаты, dbo.Заказы.Адрес_доставки FROM dbo.Заказы INNER JOIN dbo.Клиенты ON dbo.Заказы.Клиенты_FK = dbo.Клиенты.ID_Клиента INNER JOIN dbo.Продукция ON dbo.Заказы.Продукт_FK = dbo.Продукция.ID_Продукции INNER JOIN dbo.Сотрудники ON dbo.Заказы.Сотрудники_FK = dbo.Сотрудники.ID_Сотрудника INNER JOIN dbo.Стоимость_за_расстояние ON dbo.Заказы.Расстояние_FK = dbo.Стоимость_за_расстояние.ID_Расстояние";

bool add_client, edit_client, delete_client;

public string Id_Client;

public int rowIndexClient;

public int deleterowindex;

private SqlConnection sqlConnection = null;

private SqlCommandBuilder sqlBuilder = null;

private SqlDataAdapter sqlDataAdapter1 = null;

private SqlDataAdapter sqlDataAdapter2 = null;
private DataSet dataSet2 = null;
private BindingSource bindingSource = null;
public Orders(int id_sotr)

{

InitializeComponent();

this.id_sotr = id_sotr;

}

public int id_sotr;
private void LoadData()

{

try

{
sqlDataAdapter1 = new SqlDataAdapter("select * from Заказы", sqlConnection);

sqlDataAdapter2 = new SqlDataAdapter(query, sqlConnection);
sqlBuilder = new SqlCommandBuilder(sqlDataAdapter1);
sqlBuilder.GetInsertCommand();

sqlBuilder.GetUpdateCommand();

sqlBuilder.GetDeleteCommand();
dataSet2 = new DataSet();

sqlDataAdapter2.Fill(dataSet2, "Заказы");

bindingSource = new BindingSource();
bindingSource.DataSource = dataSet2.Tables["Заказы"];
clientBindingNavigator.BindingSource = bindingSource;

dataGridView1.DataSource = bindingSource;

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);

}
}

private void ReloadData()

{
try

{
int rowindex = rowIndexClient;
dataSet2.Tables["Заказы"].Clear();
sqlDataAdapter2.Fill(dataSet2, "Заказы");
bindingSource.DataSource = dataSet2.Tables["Заказы"];
clientBindingNavigator.BindingSource = bindingSource;

dataGridView1.DataSource = bindingSource;

//add , edit bool
if (delete_client)

{

delete_client = false;

if (dataGridView1.Rows.Count - 1 != rowindex) dataGridView1.CurrentCell = dataGridView1.Rows[rowindex].Cells[0];

else if (dataGridView1.Rows.Count > 1) dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells[0];
}
UpdataTextBox();
}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}

private void UpdataTextBox()

{
int rowindex = -1;

if (dataGridView1.CurrentRow != null) rowindex = dataGridView1.CurrentCell.RowIndex;
if (rowindex >= 0)

{

DataGridViewRow row = dataGridView1.Rows[rowindex];

textBox1.Text = row.Cells[0].Value.ToString();

textBox4.Text = row.Cells[1].Value.ToString();

textBox3.Text = row.Cells[2].Value.ToString();

textBox2.Text = row.Cells[3].Value.ToString();

textBox14.Text = row.Cells[4].Value.ToString();

textBox13.Text = row.Cells[5].Value.ToString();

textBox6.Text = row.Cells[6].Value.ToString();

textBox5.Text = row.Cells[7].Value.ToString();

textBox12.Text = row.Cells[8].Value.ToString();

dateTimePicker1.Text = row.Cells[9].Value.ToString();

dateTimePicker2.Text = row.Cells[10].Value.ToString();

textBox11.Text = row.Cells[12].Value.ToString();

}

else

{

textBox1.Text = null;

textBox4.Text = null;

textBox3.Text = null;

textBox2.Text = null;

textBox14.Text = null;

textBox13.Text = null;

textBox6.Text = null;

textBox5.Text = null;

textBox12.Text = null;

dateTimePicker1.Text = null;

dateTimePicker2.Text = null;

textBox11.Text = null;
}
}

private void dataGridView1_CellStateChanged_1(object sender, DataGridViewCellStateChangedEventArgs e)

{
UpdataTextBox();
}
private void Orders_Shown(object sender, EventArgs e)

{

this.MaximizeBox = false;
}
private void Orders_Load(object sender, EventArgs e)

{

sqlConnection = new SqlConnection(source);

sqlConnection.Open();

LoadData();

clientBindingNavigatorSaveItem.Enabled = false;

DateTime date2000 = new DateTime(2010, 12, 31, 0, 0, 0);

dateTimePicker3.Value = date2000;

dateTimePicker6.Value = date2000;
}
private void materialRaisedButton1_Click(object sender, EventArgs e)

{
string filtering = query + " and Дата_заказа between " + "\'" + dateTimePicker3.Value.ToString("yyyy/MM/dd") + "\'" +

" and " + "\'" + dateTimePicker4.Value.ToString("yyyy/MM/dd") + "\'" +



" and Дата_поставки between " + "\'" + dateTimePicker6.Value.ToString("yyyy/MM/dd") + "\'" +

" and " + "\'" + dateTimePicker5.Value.ToString("yyyy/MM/dd") + "\'";
if (textBox7.Text != "") filtering += " and Продукция.Груз LIKE " + "\'" + textBox7.Text + "%\'";

if (textBox8.Text != "") filtering += " and Клиенты.ФИО LIKE " + "\'" + textBox8.Text + "%\'";

if (textBox9.Text != "") filtering += " and Клиенты.Организация LIKE " + "\'" + textBox9.Text + "%\'";

if (textBox10.Text != "" && textBox15.Text != "") filtering += " and Итого_к_сумме between " + textBox10.Text + " and " + textBox15.Text;

sqlDataAdapter2 = new SqlDataAdapter(filtering, sqlConnection);
sqlBuilder = new SqlCommandBuilder(sqlDataAdapter1);
sqlBuilder.GetInsertCommand();

sqlBuilder.GetUpdateCommand();

sqlBuilder.GetDeleteCommand();

ReloadData();

}
private void materialRaisedButton2_Click(object sender, EventArgs e)

{

sqlDataAdapter2 = new SqlDataAdapter(query, sqlConnection);

ReloadData();
textBox7.Text = null;

textBox8.Text = null;

textBox9.Text = null;

textBox10.Text = null;

textBox15.Text = null;
}
private void toolStripTextBox1_TextChanged(object sender, EventArgs e)

{// Поиск

bindingSource.Filter = "Convert ([ID_Заказа],'System.String') LIKE '" + toolStripTextBox1.Text + "%'";
sqlBuilder = new SqlCommandBuilder(sqlDataAdapter1);

sqlBuilder.GetInsertCommand();

sqlBuilder.GetUpdateCommand();

sqlBuilder.GetDeleteCommand();

}
private void toolStripButton2_Click(object sender, EventArgs e)

{//Добавить запись
using (OrderRegistration orderRegistration = new OrderRegistration(id_sotr,string.Empty))

{

orderRegistration.ShowDialog();

}

}
private void toolStripButton5_Click(object sender, EventArgs e)

{//Редактировать запись
if (dataGridView1.CurrentRow != null)

{

edit_client = true;
using (OrderRegistration orderRegistration = new OrderRegistration(id_sotr, textBox1.Text))

{

orderRegistration.ShowDialog();

}

}

else MessageBox.Show("Таблица пустая", "Информация о редактировании", MessageBoxButtons.OK, MessageBoxIcon.Information);

}
private void toolStripButton3_Click_1(object sender, EventArgs e)

{//Удалить запись

if (dataGridView1.CurrentRow != null)

{

if (MessageBox.Show("Вы хотите удалить заказ?", "Удаление",

MessageBoxButtons.YesNo, MessageBoxIcon.Question)

== DialogResult.Yes)

{

deleterowindex = dataGridView1.CurrentRow.Index;

var Id_FK = dataGridView1.Rows[deleterowindex].Cells[0].Value;
dataGridView1.Rows.RemoveAt(deleterowindex);
dataSet2.Tables["Заказы"].Rows[deleterowindex].Delete();
try

{
using (var sc = new SqlConnection(source))

using (var cmd = sc.CreateCommand())

{

sc.Open();

cmd.CommandText = "DELETE FROM Заказы WHERE ID_Заказа = @word";

cmd.Parameters.AddWithValue("@word", Id_FK);

cmd.ExecuteNonQuery();

cmd.Dispose();

}

delete_client = true;

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);

}
ReloadData();

}

}

else MessageBox.Show("Таблица пустая", "Информация об удалении", MessageBoxButtons.OK, MessageBoxIcon.Information);

}
private void clientBindingNavigatorSaveItem_Click(object sender, EventArgs e)

{// Сохранить изменения

if (dataGridView1.CurrentRow != null)

{

rowIndexClient = dataGridView1.CurrentCell.RowIndex;

Id_Client = dataGridView1.Rows[rowIndexClient].Cells[0].Value.ToString();

}

}
private void toolStripButton1_Click_1(object sender, EventArgs e)

{//Обновить данные
ReloadData();
}

private void диаграммаToolStripMenuItem_Click(object sender, EventArgs e)

{

Charts сharts = new Charts();

сharts.source = source;
сharts.ShowDialog();

}
private void materialRaisedButton3_Click(object sender, EventArgs e)


{

Report report = new Report();

report.source = source;

report.query = query;

report.sqlDataAdapter1 = sqlDataAdapter2;
report.ShowDialog();

}
private void посчитатьКоличествоКлиентовToolStripMenuItem_Click(object sender, EventArgs e)

{
}
private void textBox10_KeyPress(object sender, KeyPressEventArgs e)

{

if (!(Char.IsDigit(e.KeyChar)))

{

if (e.KeyChar != (char)Keys.Back)

{

e.Handled = true;

}

}

}
private void textBox15_KeyPress(object sender, KeyPressEventArgs e)

{

if (!(Char.IsDigit(e.KeyChar)))

{

if (e.KeyChar != (char)Keys.Back)

{

e.Handled = true;

}

}

}
private void сортироватьНомерЗаказаПоУбываниюToolStripMenuItem_Click(object sender, EventArgs e)

{

bindingSource.Sort = "ID_Заказа DESC";
}
private void сортироватьНомерЗаказаПоВозрастаниюToolStripMenuItem_Click(object sender, EventArgs e)

{

bindingSource.Sort = "ID_Заказа ASC";

}
private void сортироватьФамилииКлиентовАЯToolStripMenuItem_Click(object sender, EventArgs e)

{

bindingSource.Sort = "ФИО ASC";

}
private void сортироватьФамилииКлиентовЯАToolStripMenuItem_Click(object sender, EventArgs e)

{

bindingSource.Sort = "ФИО DESC";

}
private void Orders_FormClosing(object sender, FormClosingEventArgs e)

{

e.Cancel = !(MessageBox.Show("Выйти из формы?", "Выход",

MessageBoxButtons.YesNo, MessageBoxIcon.Question)

== DialogResult.Yes);
}
private void Orders_FormClosed(object sender, FormClosedEventArgs e)

{

GC.Collect();

GC.WaitForPendingFinalizers();

}

}

}
Приложение 2

Диаграммы



Рисунок 1 – Диаграмма «Движение выручки»



Рисунок 2 – Диаграмма «Статистика покупок клиентов»