Описание классов и методов

Классы:

· public class AddRes – добавление товара в общий список.

· public class FindRes – поиск товара.

Методы:

· Класса AddRes

o public void AddRs() – добавление товара.

· Класса FindRes

o public void FindResName() – поиск товара по наименованию.

o public void FindResXY() – поиск товара по стеллажу и ячейке.

Поля:

· Класса AddRes

o name = ""; - имя товара.

o numSt = 0; - номер стеллажа.

o numBl = 0; - номер ячейки.

o numKl = 0; - количество.

o temp = false; - одинаковая запись.

o temp1 = false; - одинаковое расположение.

· Класса FindRes

o nameFn = ""; - поиск по имени.

o xxxx, yyyy = ""; - поиск по стеллажу и ячейке.

 


 


Блок-схемы

Схема добавления записи (рис1):


Схема поиска записи (рис2):


Схема удаления записи (рис3):





Результат работы программы

Полный вид программы до заполнения информацией(рис.1) и после(рис.2):

Рис.1.

Рис.2.

Окно списка всех заявок с функцией удаления(рис.3):

Рис.3.

Поиск по названию(рис.4):

Рис.4.

Поиск по координатам(рис.5): Рис.5.


 


Код программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

 

namespace AutoInf

{

public partial class myFrm11: Form

{

   public myFrm11()

   {

       InitializeComponent();

   }

 

   private void myFrm11_Load(object sender, EventArgs e)

   {

 

   }

 

   private void txtName_TextChanged(object sender, EventArgs e)

   {

 

   }

 

   private void vtnAddName_Click(object sender, EventArgs e)

   {

 

       string text = txtName.Text.Trim();

       bool logik = false;

       if (txtName.Text!= "")

       {

           foreach (string a in cmbName.Items)

               if (a.ToLower() == text.ToLower()) { logik = true; break; }

           if (logik) MessageBox.Show("Такое наименование уже существует!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); else { cmbName.Items.Add(text); txtName.Text = null; MessageBox.Show("Добавлено в список!", "Готово", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); }

       }

       else MessageBox.Show("Поле пустое!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error);

   }

 

   private void btnAdd_Click(object sender, EventArgs e)

   {

       if (cmbName.SelectedIndex!= -1)

       {

           AddRes myAddRes = new AddRes();

           myAddRes.AddRs(cmbName.SelectedItem.ToString(), int.Parse(numStolb.Value.ToString()), int.Parse(numBlock.Value.ToString()), int.Parse(numKol.Value.ToString()), ref dtg);

       }

   }

 

   private void btnDell_Click(object sender, EventArgs e)

   {

       try

       {

           int ind = dtg.SelectedCells[0].RowIndex;

           dtg.Rows.RemoveAt(ind);

       }

       catch { MessageBox.Show("Удаление пустой строки!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); }

   }

 

   private void btnQest_Click(object sender, EventArgs e)

   {

       MessageBox.Show("- Если добавленый товар уже имеется на складе, то товар кладётся в ту же ячейку с увеличением единицы продукта!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

   }

 

   private void btnOpen_Click(object sender, EventArgs e)

   {

       Stream myStr = null;

       if (openFileDialog1.ShowDialog() == DialogResult.OK)

       {

           if ((myStr = openFileDialog1.OpenFile())!= null)

           {

               StreamReader myRead = new StreamReader(myStr);

               string[] str;

               int _num = 0;

               try

               {

                   string[] str1 = myRead.ReadToEnd().Split('\n');

                   _num = str1.Count();

                   dtg.RowCount = _num;

                   for (int i = 0; i < _num; i++)

                   {

                       str = str1[i].Split('^');

                       for (int j = 0; j < dtg.ColumnCount; j++)

                       {

                           try

                           {

                               dtg.Rows[i].Cells[j].Value = str[j];

                           }

                           catch { }

                       }

                   }

               }

               catch (Exception ex) { MessageBox.Show(ex.Message); }

               finally

               {

                   myRead.Close();

               }

               myStr.Close();

           }

           MessageBox.Show("Готово!", "Готово", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

       }

   }

 

   private void btnSave_Click(object sender, EventArgs e)

   {

       Stream myStr = null;

      if (saveFileDialog1.ShowDialog() == DialogResult.OK)

       {

           if ((myStr = saveFileDialog1.OpenFile())!= null)

           {

               StreamWriter mywrite = new StreamWriter(myStr);

               try

               {

                   for (int i = 0; i < dtg.RowCount - 1; i++)

                   {

                       for (int j = 0; j < dtg.ColumnCount; j++)

                       {

                           string dt = dtg.Rows[i].Cells[j].Value.ToString().Replace("^", "[etot_simvol]");

                           mywrite.Write(dt + "^");

                       }

                       mywrite.WriteLine();

                   }

               }

               catch (Exception ex) { MessageBox.Show(ex.Message); }

               finally

               {

                   mywrite.Close();

               }

               myStr.Close();

           }

       }

       MessageBox.Show("Готово!", "Готово", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

   }

 

   private void btnFindname_Click(object sender, EventArgs e)

   {

       FindRes myFindRes = new FindRes();

       string s1, s2 = "";

       myFindRes.FindResName(txtFindName.Text, ref dtg, out s1, out s2);

       lblFindName.Text = "Товар \"" + txtFindName.Text + "\" находится в " + s2 + " ячейке, в " + s1 + " колонке";

   }

 

   private void btnFindXY_Click(object sender, EventArgs e)

   {

       FindRes myFindRes = new FindRes();

       string s1, s2 = "";

       myFindRes.FindResXY(int.Parse(numFindStl.Value.ToString()), int.Parse(numFindBlock.Value.ToString()), ref dtg, out s1, out s2);

       lblFindXY.Text= "В ячейке "+int.Parse(numFindBlock.Value.ToString())+", стелаже "+int.Parse(numFindStl.Value.ToString()) +", находится товар:"+s1+" ("+s2+"шт.)";

   }

 

   private void groupBox3_Enter(object sender, EventArgs e)

   {

 

   }

}

 

public class AddRes

{

   string name = "";

   int numSt = 0;

   int numBl = 0;

   int numKl = 0;

   bool temp = false;

   bool temp1 = false;

   public void AddRs(string Name, int St, int Bl, int Kl, ref DataGridView _dtgTemp)

   {

       name = Name;

       numSt = St;

       numBl = Bl;

       numKl = Kl;

 

       if (_dtgTemp.RowCount == 1)

           _dtgTemp.Rows.Add(name, numSt, numBl, numKl);

       else

       {

           for (int i = 0; i < _dtgTemp.RowCount - 1; i++)

           {

               if (_dtgTemp.Rows[i].Cells[0].Value.ToString().ToLower() == name.ToLower())

               {

                   _dtgTemp.Rows[i].Cells[3].Value = int.Parse(_dtgTemp.Rows[i].Cells[3].Value.ToString()) + numKl;

                   temp = true;

                      break;

               }

           }

           if (temp == false)

           {

               for (int i = 0; i < _dtgTemp.RowCount - 1; i++)

                   if (_dtgTemp.Rows[i].Cells[1].Value.ToString() == numSt.ToString() && _dtgTemp.Rows[i].Cells[2].Value.ToString() == numBl.ToString())

                   {

                       temp1 = true;

                       MessageBox.Show("Эта ячейка уже занята товаром: " + _dtgTemp.Rows[i].Cells[0].Value.ToString(), "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error);

                   }

               if (temp1 == false) _dtgTemp.Rows.Add(name, numSt, numBl, numKl);

           }

       }

 

   }

 

}

public class FindRes

{

   string nameFn = "";

   string xxxx, yyyy = "";

   public void FindResName(string n1, ref DataGridView _dtgTemp, out string st1, out string st2)

   {

       nameFn = n1;

       st1 = st2 = "";

       for (int i = 0; i < _dtgTemp.RowCount - 1; i++)

       {

           if (_dtgTemp.Rows[i].Cells[0].Value.ToString().ToLower() == nameFn.ToLower())

           {

               st1 = _dtgTemp.Rows[i].Cells[1].Value.ToString();

               st2 = _dtgTemp.Rows[i].Cells[2].Value.ToString();

               break;

           }

       }

   }

   public void FindResXY(int x, int y, ref DataGridView _dtgTemp, out string st1, out string st2)

   {

       st1 = st2 = "";

       xxxx = x.ToString();

       yyyy = y.ToString();

 

       for (int i = 0; i < _dtgTemp.RowCount - 1; i++)

       {

           if (_dtgTemp.Rows[i].Cells[1].Value.ToString() == xxxx && _dtgTemp.Rows[i].Cells[2].Value.ToString() == yyyy)

           {

               st1 = _dtgTemp.Rows[i].Cells[0].Value.ToString();

               st2 = _dtgTemp.Rows[i].Cells[3].Value.ToString();

               break;

           }

       }

   }

}

}

 


 


Заключение

Для начала нужно добавить наименование в общий список наименований (правый верхний угол), после чего указать стеллаж и ячейку, в котором будет храниться товар и само количество товара. Запись добавится в общий список товаров на складе (левый верхний угол). Если добавляется товар с уже существующим названием, то он кладётся в ту же ячейку, где встречается сам товар. Если ячейка занята другим товаром, то появится соответствующие уведомление. Возможно удаление конкретного товара со склада. Поиск товара осуществляется в отдельных панелях, расположенных в нижнем правом углу.




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: