СОДЕРЖАНИЕ
1. Аналитический обзор разработки АСУ
1.2 Основные понятия и определения
1.3 Общее описание разрабатываемой АСУ
1.5 Анализ предметной области разработки
2. Разработка базы данных для системы
2.2 Построение концептуальной (инфологической) модели БД
2.3 Построение логической схемы БД
3. Разработка клиентского приложения
3.1 Выбор языка и среды программирования
3.2 Требования к клиентскому приложению
3.2.2 Требования к функционалу
3.3 Проектирование клиентского приложения
3.3.3 Выбор шаблонов проектирования
3.3.4 UML диаграмма классов с учетом выбранных шаблонов
3.3.5 Построение блок-схем алгоритмов подпрограмм
4.1 Общие сведения по разработке сайта
4.2 Выбор языков программирования
5.1 Тестирование клиентского приложения
5.1.3 Заказы. Перевод в поставки
5.1.4 Поставки. Установка цены продажи на товар
5.1.5 Тестирование продажи товара
5.1.8 Тестирование анализа продаж товаров
5.1.6 Тестирование отмены продажи товара
5.1.9 Тестирование функции «Остатки»
5.1.10 Тестирование подпрограммы для работы с пользователями сайта
5.2.1 Правильность выполнения функций по нажатию кнопок и переходов по гиперссылкам
5.2.2 Правильность выполнения SQL-запросов к БД
5.2.3 Тестирование слайдера «Slick»
6. Внедрение продукта в производство
}
//кнопка поиска заказов: System::Void search_zak_Click(System::Object^ sender, System::EventArgs^ e) {::getSingleton()->fillTable(dataGridView1, "select Код_заказа as 'Код заказа', Название_товара as 'Название товара', Брэнд, Количество_ед_товара as 'Заказано шт.',Стоимость_закупки as 'Стоимость закупки',Категория as 'Категория',Размеры,Характеристики,Для_авто as 'Для автомобиля', Дата_заказа as 'Дата заказа' from autorun2.Заказы where Код_Заказа ='" + this->txt1->Text + "' or Название_товара='" + this->txt2->Text + "' or Брэнд='" + this->txt3->Text + "';");
}
//кнопка поиска товара: System::Void search_tovar_Click(System::Object^ sender, System::EventArgs^ e) {::getSingleton()->fillTable(dataGridView1, "select Код_товара as 'Код товара',Категория as'Категория',Брэнд,Название_товара as 'Наименование товара',Стоимость_закупки as 'Стоимость закупки', Стоимость_продажи as 'Стоимость продажи',Остаток_шт as 'Остаток шт.',Для_авто,Размеры,Характеристики from autorun2.Товары where Код_товара ='" + this->txt1->Text + "' or Категория = '" + this->categ->Text + "' or Брэнд='" + this->txt3->Text + "'or Название_товара='" + this->txt4->Text + "';");
}
//кнопка поиска поставок: System::Void search_postavka_Click(System::Object^ sender, System::EventArgs^ e) {::getSingleton()->fillTable(dataGridView1, "select Код_поставки as 'Код поставки',Название_товара as 'Название товара',Брэнд,Доставлено_ед_товара as 'Доставлено товара',Стоимость_заказа as 'Стоимость заказа',Стоимость_продажи as 'Стоимость продажи',Категория as 'Категория',Размеры,Характеристики,Для_авто as 'Для автомобиля',Дата_поставки as 'Дата поставки' from autorun2.Поставки where Код_поставки ='" + this->txt1->Text + "' or Название_товара='" + this->txt2->Text + "' or Брэнд='" + this->txt3->Text + "';");
}
//кнопка вывода информации о продажах: System::Void prodazhi_Click(System::Object^ sender, System::EventArgs^ e) {
//Изменяем имена лейблов на актуальные для выбранной таблицы
lbl1->Text = "Код продажи";
lbl2->Text = "Дата продажи";
lbl3->Text = "Покупатель";
lbl4->Text = "Название товара";
//Чистим видимые текстбоксы при повторном нажатии на кнопку
//Лишние лейблы делаем невидимыми
//Лишние текстбоксы делаем невидимыми
//Лишние кнопки делаем невидимыми
ConnToDB::getSingleton()->fillTable(dataGridView1, "select Код_продажи as 'Код продажи',Дата_продажи as 'Дата продажи',Покупатель,Назв_товара as 'Наименование товара',Брэнд,Количество as 'Количество товара',Сумма,Выручка from autorun2.Продажа ;");
}
//кнопка поиска продаж: System::Void search_prod_Click(System::Object^ sender, System::EventArgs^ e) {::getSingleton()->fillTable(dataGridView1, "select Код_продажи as 'Код продажи',Дата_продажи as 'Дата продажи',Покупатель,Назв_товара as 'Наименование товара',Брэнд,Количество as 'Количество товара',Сумма,Выручка from autorun2.Продажа where Код_продажи ='" + this->txt1->Text + "' ;");
}
//работа с существующим клиентом: System::Void old_client_Click(System::Object^ sender, System::EventArgs^ e) {
}
//Занесение нового клиента: System::Void button9_Click_1(System::Object^ sender, System::EventArgs^ e) {
}
//кнопка сохранения нового покупателя для страницы "продажа"
private: System::Void save_cli_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("Insert into autorun2.Клиенты (Ф_И_О,Телефон,Автомобиль,WIN) values('" + this->txt_FIO->Text + "','" + this->txt_number->Text + "','" + this->txt_auto->Text + "','" + this->txt_win->Text + "') ;");(myReader->Read()) {
}::Show("Данные успешно занесены в базу");
}(Exception^ ex) {::Show(ex->Message);
}
}
//кнопка "продажа": System::Void prod_Click(System::Object^ sender, System::EventArgs^ e) {->Visible = false;a, b;= Convert::ToInt32(txt_ost->Text);= Convert::ToInt32(txt_tov_count->Text);(choose_tov->Text == "") {::Show("Пожалуйста выберите товар для продажи!");
}(txt_tov_count->Text == "") {::Show("Пожалуйста введите количество товара!");
}
if (a >= b) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
button21->Visible = true;->Visible = true;->Visible = true;{^ myReader = ConnToDB::getSingleton()->doSQLCommand("update autorun2.товары set Остаток_шт=Остаток_шт-'" + this->txt_tov_count->Text + "'where Код_товара='" + this->combo_ID->Text + "'; Insert into autorun2.Продажа (Покупатель,Назв_товара,Категория_тов,Брэнд,Количество,Сумма,Выручка) values ('" + this->choose_cli->Text + "','" + this->choose_tov->Text + "','" + this->categ->Text + "','" + this->choose_brend->Text + "','" + this->txt_tov_count->Text + "',replace('" + this->txt_sum->Text + "',',','.'), replace('" + this->txt_viruchka->Text + "',',','.'));");(myReader->Read()) {
}(choose_cli->Text != "") {::Show("Продано '" + txt_tov_count->Text + "' шт. товара '" + choose_tov->Text + "' покупателю '" + choose_cli->Text + "'");
}{::Show("Продано '" + txt_tov_count->Text + "' шт. товара '" + choose_tov->Text + "'");
}
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView2, "select Код_продажи as 'Код продажи',Дата_продажи as 'Дата продажи',Покупатель,Назв_товара as 'Наименование товара',Количество as 'Количество товара',Сумма from autorun2.Продажа where Покупатель = '" + this->choose_cli->Text + "';");
}
else {
MessageBox::Show("Недостаточно товара на складе!");
}
checkBox1->Visible = false;
}
//кнопка "добавить имеющийся товар"
private: System::Void add_tovar_Click(System::Object^ sender, System::EventArgs^ e) {
}: System::Void form_width_btn_Click(System::Object^ sender, System::EventArgs^ e) {->Visible = false;>Visible = false;->Height = 535;>Visible = true;>Height = 640;::getSingleton()->fillTable(dataGridView2, "select Код_продажи as 'Код продажи',Дата_продажи as 'Дата продажи',Покупатель,Назв_товара as 'Наименование товара',Количество as 'Количество товара',Сумма from autorun2.Продажа where Покупатель = '" + this->choose_cli->Text + "';");
}: System::Void minus_Click(System::Object^ sender, System::EventArgs^ e) {>Visible = true;->Visible = true;>Height = 445;->Height = 340;
}: System::Void button10_Click(System::Object^ sender, System::EventArgs^ e) {->Visible = false;>Width = 1290;->Location = System::Drawing::Point(996, 8);
}
//продать еще товар этому же покупателю
private: System::Void button8_Click_2(System::Object^ sender, System::EventArgs^ e) {
}: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) {->Visible = false;>Width = 1290;->Location = System::Drawing::Point(996, 8);
}: System::Void button14_Click(System::Object^ sender, System::EventArgs^ e) {>Width = 933;->Location = System::Drawing::Point(643, 8);->Visible = true;
}: System::Void button16_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
}: System::Void button16_MouseUp(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
}: System::Void comboBox1_Enter(System::Object^ sender, System::EventArgs^ e) {1->Items->Clear();
//выполняем sql запрос к базе для удаления строки из таблицы по любому введенному колумну
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("select Код_продажи FROM autorun2.Продажа where Покупатель='" + this->choose_cli2->Text + "' ;");^ times = gcnew ArrayList();(myReader->Read()) {>Add(myReader->GetString("Код_продажи"));
}each (String^ time in times) {->Items->Add(time);
}
}(Exception^ ex) {::Show(ex->Message);
}
}: System::Void comboBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для удаления строки из таблицы по любому введенному колумну
try {
MySqlDataReader^ myReader = ConnToDB::getSingleton()->doSQLCommand("select Дата_продажи,Назв_товара,Количество,Сумма FROM autorun2.Продажа where Код_продажи='" + this->comboBox1->Text + "' ;");
String^ date;^ tov_name;^ tov_count;^ summa_prod;(myReader->Read()) {= myReader->GetString("Дата_продажи");_name = myReader->GetString("Назв_товара");_count = myReader->GetString("Количество");_prod = myReader->GetString("Сумма");
}->Text = date;->Text = tov_name;->Text = tov_count;->Text = summa_prod;
}(Exception^ ex) {::Show(ex->Message);
}{^ myReader = ConnToDB::getSingleton()->doSQLCommand("select Выручка from autorun2.Продажа where Код_продажи = '" + this->comboBox1->Text + "';");^ viruchka;(myReader->Read()) {= myReader->GetString("Выручка");
}_viruchka1->Text = viruchka;
}(Exception^ ex) {::Show(ex->Message);
}
}: System::Void button12_Click(System::Object^ sender, System::EventArgs^ e) { (comboBox1->Text != "") {
//выполняем sql запрос к базе для удаления строки из таблицы по любому введенному колумну
try {
MySqlDataReader^ myReader = ConnToDB::getSingleton()->doSQLCommand("delete from autorun2.Продажа where Код_продажи='" + this->comboBox1->Text + "';update autorun2.Товары set Остаток_шт=Остаток_шт+'" + this->textBox4->Text + "' where Код_товара='" + this->comboBox1->Text + "';");
while (myReader->Read()) {
}::Show("Продажа отменена");
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView2, "select Код_продажи as 'Код продажи',Дата_продажи as 'Дата продажи',Покупатель,Назв_товара as 'Наименование товара',Количество as 'Количество товара',Сумма from autorun2.Продажа where Покупатель = '" + this->choose_cli->Text + "';");->Text = "";->Text = "";->Text = "";->Text = "";->Text = "";
}{::Show("Заполните поле 'Код продажи'!");
}
}: System::Void choose_cli_TextChanged(System::Object^ sender, System::EventArgs^ e) {::getSingleton()->fillTable(dataGridView2, "select Код_продажи as 'Код продажи',Дата_продажи as 'Дата продажи',Покупатель,Назв_товара as 'Наименование товара',Количество as 'Количество товара',Сумма from autorun2.Продажа where Покупатель = '" + this->choose_cli->Text + "';");
}: System::Void form2_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {(MessageBox::Show("Вы действительно хотите выйти?", "AutoRun", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes) {>Cancel = false;
}{>Cancel = true;
}
}: System::Void button11_Click(System::Object^ sender, System::EventArgs^ e) {(MessageBox::Show("Вы действительно хотите удалить все записи из таблицы без возможности восстановления?", "AutoRun", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("TRUNCATE TABLE autorun2.Клиенты;");(myReader->Read()) {
}::Show("Все записи удалены из таблицы 'Клиенты'");
}(Exception^ ex) {::Show(ex->Message);
}
}
}: System::Void button15_Click(System::Object^ sender, System::EventArgs^ e) {(MessageBox::Show("Вы действительно хотите удалить все записи из таблицы без возможности восстановления?", "AutoRun", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("TRUNCATE TABLE autorun2.Товары;");(myReader->Read()) {
}::Show("Все записи удалены из таблицы 'Товары'");
}(Exception^ ex) {::Show(ex->Message);
}
}
}: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {(MessageBox::Show("Вы действительно хотите удалить все записи из таблицы без возможности восстановления?", "AutoRun", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("TRUNCATE TABLE autorun2.Поставщики;");(myReader->Read()) {
}::Show("Все записи удалены из таблицы 'Поставщики'");
}(Exception^ ex) {::Show(ex->Message);
}
}
}: System::Void button18_Click(System::Object^ sender, System::EventArgs^ e) {(MessageBox::Show("Вы действительно хотите удалить все записи из таблицы без возможности восстановления?", "AutoRun", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("TRUNCATE TABLE autorun2.Заказы;");(myReader->Read()) {
}::Show("Все записи удалены из таблицы 'Заказы'");
}(Exception^ ex) {::Show(ex->Message);
}
}
}: System::Void button19_Click(System::Object^ sender, System::EventArgs^ e) {(MessageBox::Show("Вы действительно хотите удалить все записи из таблицы без возможности восстановления?", "AutoRun", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("TRUNCATE TABLE autorun2.Поставки;");(myReader->Read()) {
}::Show("Все записи удалены из таблицы 'Поставки'");
}(Exception^ ex) {::Show(ex->Message);
}
}
}: System::Void button20_Click(System::Object^ sender, System::EventArgs^ e) {(MessageBox::Show("Вы действительно хотите удалить все записи из таблицы без возможности восстановления?", "AutoRun", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("TRUNCATE TABLE autorun2.Продажа;");(myReader->Read()) {
}::Show("Все записи удалены из таблицы 'Продажа'");
}(Exception^ ex) {::Show(ex->Message);
}
}
}: System::Void form2_FormClosed(System::Object^ sender, System::Windows::Forms::FormClosedEventArgs^ e) {::Exit();
}: System::Void txt_tov_count_TextChanged(System::Object^ sender, System::EventArgs^ e) {{^ myReader = ConnToDB::getSingleton()->doSQLCommand("select Стоимость_продажи*'" + this->txt_tov_count->Text + "' as 'Сумма' from autorun2.Товары where Код_товара='" + this->combo_ID->Text + "';");^ rasschet1;(myReader->Read()) {= myReader->GetString("Сумма");
}_sum->Text = rasschet1;
}(Exception^ ex) {::Show(ex->Message);
}(txt_sum->Text != "") {>Enabled = true;
}{^ myReader = ConnToDB::getSingleton()->doSQLCommand("select (Стоимость_продажи-Стоимость_закупки)*'" + this->txt_tov_count->Text + "' as 'Выручка' from autorun2.Товары where Код_товара = '" + this->combo_ID->Text + "' ;");^ viruchka;(myReader->Read()) {= myReader->GetString("Выручка");
}_viruchka->Text = viruchka;
}(Exception^ ex) {::Show(ex->Message);
}
}: System::Void button21_Click(System::Object^ sender, System::EventArgs^ e) {
}: System::Void start_Click(System::Object^ sender, System::EventArgs^ e) {(gcnew NavigateCommand(browser, adress->Text));
//browser->Navigate(adress->Text);
}: System::Void home_Click(System::Object^ sender, System::EventArgs^ e) {(gcnew NavigateCommand(browser, "http://google.com"));
//browser->Navigate("http://google.com");
}: System::Void refresh_Click(System::Object^ sender, System::EventArgs^ e) {>Refresh();
}: System::Void forward_Click(System::Object^ sender, System::EventArgs^ e) {(gcnew ForwardCommand(browser));
//browser->GoForward();
}: System::Void back_Click(System::Object^ sender, System::EventArgs^ e) {(gcnew BackCommand(browser));
//browser->GoBack();
}: System::Void Браузер_Enter(System::Object^ sender, System::EventArgs^ e) {>Height = 693;->Visible = false;->Visible = false;->Visible = false;->Height = 610;
}: System::Void browser_DocumentCompleted(System::Object^ sender, System::Windows::Forms::WebBrowserDocumentCompletedEventArgs^ e) {>Text = browser->Url->ToString();