| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396 | using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using Word = Microsoft.Office.Interop.Word;namespace СУБД_Швейная_фабрика{    public partial class FormManager : Form    {        public FormManager()        {            InitializeComponent();        }        /// <summary>        /// Заполнение DataGridView с заказами текущего заказчика        /// </summary>        void FillListZakaz()        {            SqlConnection con = new SqlConnection(Properties.Settings.Default.fab2021ConnectionString);            con.Open();            string TxtQuery =@"select Izdeliya.nameizd as izd,     Zakaz.countizd as countizd,     Tkani.nametkan as tkan,     Furnitura.namefur as fur,     Zakaz.countfur as countfur,     Users.fam as zakazchikfrom Zakaz, Users, Tkani, Furnitura, Izdeliyawhere Users.iduser = Zakaz.idzakazchik     and Tkani.idtkan = Zakaz.idtkan     and Furnitura.idfur = Zakaz.idfur     and Izdeliya.idizd = Zakaz.idizd    and Zakaz.idman = " + LblIdManager.Text;            SqlCommand query1 = new SqlCommand(TxtQuery, con);            // выполнить запрос            SqlDataReader SqlRez = query1.ExecuteReader();            DgvZakaz.Rows.Clear(); // очистить от старых строк            // перебирать результаты запроса            while (SqlRez.Read())            {                DgvZakaz.Rows.Add(SqlRez["izd"], SqlRez["countizd"],                    SqlRez["tkan"], SqlRez["fur"], SqlRez["countfur"],                    SqlRez["zakazchik"]);            }            con.Close();        }        public struct Tkani        {            public string IdTkan, NameTkan, ColorTkan, Width, Length, Description;            public Image PhotoTkan;        }        List<Tkani> LstTkani = new List<Tkani>();        /// <summary>        /// получить из базы данных сведения о тканях        /// </summary>        void GetTkaniFromDB()        {            SqlConnection con = new SqlConnection(Properties.Settings.Default.fab2021ConnectionString);            con.Open();            SqlCommand Query = new SqlCommand("select * from Tkani where length > 0", con);            SqlDataReader Data = Query.ExecuteReader();            while (Data.Read())            {                Tkani Tk = new Tkani();                Tk.IdTkan = Data["idtkan"].ToString();                Tk.NameTkan = Data["nametkan"].ToString();                Tk.ColorTkan = Data["color"].ToString();                Tk.Width = Data["width"].ToString();                Tk.Length = Data["length"].ToString();                Tk.Description = Data["description"].ToString();                try                {                    // загрузить из таблицы БД байты фотографии в массив                    byte[] PhotoByte = (byte[])Data["phototkan"];                    ImageConverter ImConverter = new ImageConverter();                    // сконвертировать массив байт в изображение                    Tk.PhotoTkan = (Bitmap)ImConverter.ConvertFrom(PhotoByte);                }                catch                {                    // в случае ошибки загрузить пустое изображение из ресурсов                    Tk.PhotoTkan = Properties.Resources.tmp;                }                LstTkani.Add(Tk);  // добавить в список новую ткань            }            con.Close();        }        /// <summary>        /// заполнение таблицы с фотографиями тканей        /// </summary>        void FillLVTkani()        {            LVTkani.Items.Clear();            ImageListTkani.Images.Clear();            foreach (Tkani Tk in LstTkani)            {                // новый элемент для ListView с названием ткани                ListViewItem LV = new ListViewItem(Tk.NameTkan);                // в ImageList добавить изображение ткани                ImageListTkani.Images.Add(Tk.PhotoTkan);                // связать последнее добавленное изображение с новым элементом ListView                LV.ImageIndex = ImageListTkani.Images.Count - 1;                LVTkani.Items.Add(LV);  // добавить новый элемент к ListView            }        }        public struct Furnitura        {            public string IdFur, NameFur, CountFur;            public Image PhotoFur;        }        List<Furnitura> LstFurnitura = new List<Furnitura>();        /// <summary>        /// получить данные о фурнитурах из базы данных        /// </summary>        void GetFurnituraFromDB()        {            SqlConnection con = new SqlConnection(Properties.Settings.Default.fab2021ConnectionString);            con.Open();            SqlCommand Query = new SqlCommand("select * from Furnitura where countfur > 0", con);            SqlDataReader Data = Query.ExecuteReader();            while (Data.Read())            {                Furnitura Fr = new Furnitura();                Fr.IdFur = Data["idfur"].ToString();                Fr.NameFur = Data["namefur"].ToString();                Fr.CountFur = Data["countfur"].ToString();                try                {                    // загрузить из таблицы БД байты фотографии в массив                    byte[] PhotoByte = (byte[])Data["photo"];                    ImageConverter ImConverter = new ImageConverter();                    // сконвертировать массив байт в изображение                    Fr.PhotoFur = (Bitmap)ImConverter.ConvertFrom(PhotoByte);                }                catch                {                    // в случае ошибки загрузить пустое изображение из ресурсов                    Fr.PhotoFur = Properties.Resources.tmp;                }                LstFurnitura.Add(Fr);  // добавить в список новую фурнитуру            }            con.Close();        }        /// <summary>        /// заполнить таблицу с фотографиями фурнитур        /// </summary>        void FillLVFurnitura()        {            LVFurnitura.Items.Clear();            ImageListFur.Images.Clear();            foreach (Furnitura Fr in LstFurnitura)            {                // новый элемент для ListView с названием фурнитуры                ListViewItem LV = new ListViewItem(Fr.NameFur);                // в ImageList добавить изображение фурнитуры                ImageListFur.Images.Add(Fr.PhotoFur);                // связать последнее добавленное изображение с новым элементом ListView                LV.ImageIndex = ImageListFur.Images.Count - 1;                LVFurnitura.Items.Add(LV);  // добавить новый элемент к ListView            }        }        private void FormManager_Load(object sender, EventArgs e)        {            // TODO: This line of code loads data into the 'fab2021DataSet1.Izdeliya' table. You can move, or remove it, as needed.            this.izdeliyaTableAdapter.Fill(this.fab2021DataSet1.Izdeliya);            // TODO: This line of code loads data into the 'fab2021DataSet1.Users' table. You can move, or remove it, as needed.            this.usersTableAdapter.Fill(this.fab2021DataSet1.Users);            FillListZakaz();            GetTkaniFromDB();            FillLVTkani();            GetFurnituraFromDB();            FillLVFurnitura();        }        private void BtnProfile_Click(object sender, EventArgs e)        {            FormProfile frm = new FormProfile();            // на форму для редактирования профиля передать             // фильтр для выборки авторизовавшегося пользователя            frm.BsUsers.Filter = this.BsUsers.Filter;            if (frm.ShowDialog() == DialogResult.OK)            {                this.usersTableAdapter.Fill(this.fab2021DataSet1.Users);            }        }        private void BtnAdd_Click(object sender, EventArgs e)        {            BsIzdeliya.AddNew();            BtnSave.Enabled = true;            BtnAdd.Enabled = false;            BtnEdit.Enabled = false;            DgvIzd.Enabled = false;            TbxNameIzd.Enabled = true;            TbxLengthIzd.Enabled = true;            TbxWidthIzd.Enabled = true;        }        private void BtnEdit_Click(object sender, EventArgs e)        {            BtnSave.Enabled = true;            BtnAdd.Enabled = false;            BtnEdit.Enabled = false;            DgvIzd.Enabled = false;            TbxNameIzd.Enabled = true;            TbxLengthIzd.Enabled = true;            TbxWidthIzd.Enabled = true;        }        private void BtnSave_Click(object sender, EventArgs e)        {            BsIzdeliya.EndEdit();            this.izdeliyaTableAdapter.Update(this.fab2021DataSet1.Izdeliya);            BtnSave.Enabled = false;            BtnAdd.Enabled = true;            BtnEdit.Enabled = true;            DgvIzd.Enabled = true;            TbxNameIzd.Enabled = false;            TbxLengthIzd.Enabled = false;            TbxWidthIzd.Enabled = false;        }        private void LVTkani_SelectedIndexChanged(object sender, EventArgs e)        {            if (LVTkani.SelectedItems.Count > 0)  // есть выделенные элементы            {                int num = LVTkani.SelectedIndices[0];  // номер выделенного элемента                NametkanTextBox.Text = LstTkani[num].NameTkan;                ColorTextBox.Text = LstTkani[num].ColorTkan;                WidthTextBox.Text = LstTkani[num].Width;                LengthTextBox.Text = LstTkani[num].Length;                DescriptionTextBox.Text = LstTkani[num].Description;            }            else  // нет выделенных элементов            {                NametkanTextBox.Text = "";                ColorTextBox.Text = "";                WidthTextBox.Text = "";                LengthTextBox.Text = "";                DescriptionTextBox.Text = "";            }        }        private void LVFurnitura_SelectedIndexChanged(object sender, EventArgs e)        {            if (LVFurnitura.SelectedItems.Count > 0)  // есть выделенные элементы            {                int num = LVFurnitura.SelectedIndices[0];  // номер выделенного элемента                TbxNameFur.Text = LstFurnitura[num].NameFur;                TbxCountFurSklad.Text = LstFurnitura[num].CountFur;            }            else  // нет выделенных элементов            {                TbxNameFur.Text = "";                TbxCountFurSklad.Text = "";            }        }        private void BtnAll_Click(object sender, EventArgs e)        {            if (RbtWord.Checked)            {                Word.Application app = new Word.Application();                app.Visible = true;                Word.Document doc = app.Documents.Open(Application.StartupPath + "\\Заказы.docx", null, true);                Word.Bookmarks WBmark = doc.Bookmarks;  // закладки из документа                WBmark["man"].Range.Text = FamLabel.Text + " " + NameLabel.Text + " " + OtchLabel.Text;                string num = "", izd = "", countizd = "", tkan = "",                    fur = "", countfur = "", zakazchik = "";                for (int i = 0; i <= DgvZakaz.RowCount - 1; i++)  // перебор записей в таблице                {                    num += (i + 1).ToString() + "." + "\r\n";                    izd += DgvZakaz.Rows[i].Cells[0].Value + "\r\n";                    countizd += DgvZakaz.Rows[i].Cells[1].Value + "\r\n";                    tkan += DgvZakaz.Rows[i].Cells[2].Value + "\r\n";                    fur += DgvZakaz.Rows[i].Cells[3].Value + "\r\n";                    countfur += DgvZakaz.Rows[i].Cells[4].Value + "\r\n";                    zakazchik += DgvZakaz.Rows[i].Cells[5].Value + "\r\n";                }                WBmark["num"].Range.Text = num.Trim();                WBmark["izd"].Range.Text = izd.Trim();                WBmark["countizd"].Range.Text = countizd.Trim();                WBmark["tkan"].Range.Text = tkan.Trim();                WBmark["fur"].Range.Text = fur.Trim();                WBmark["countfur"].Range.Text = countfur.Trim();                WBmark["zak"].Range.Text = zakazchik.Trim();            }            else            {                if (saveFileDialog1.ShowDialog() == DialogResult.OK)                {                    StreamWriter f = new StreamWriter(saveFileDialog1.FileName);                    string t = "izd;countizd;tkan;furnitura;countfur;zakazchik";                    f.WriteLine(t);                    for(int i=0; i <= DgvZakaz.RowCount-1; i++)                    {                        t = "";                        t += DgvZakaz.Rows[i].Cells[0].Value + ";";                        t += DgvZakaz.Rows[i].Cells[1].Value + ";";                        t += DgvZakaz.Rows[i].Cells[2].Value + ";";                        t += DgvZakaz.Rows[i].Cells[3].Value + ";";                        t += DgvZakaz.Rows[i].Cells[4].Value + ";";                        t += DgvZakaz.Rows[i].Cells[5].Value;                        f.WriteLine(t);                    }                    f.Close();                }            }                    }        private void BtnSelect_Click(object sender, EventArgs e)        {            if (RbtWord.Checked)            {                Word.Application app = new Word.Application();                app.Visible = true;                Word.Document doc = app.Documents.Open(Application.StartupPath + "\\Заказы.docx", null, true);                Word.Bookmarks WBmark = doc.Bookmarks;  // закладки из документа                WBmark["man"].Range.Text = FamLabel.Text + " " + NameLabel.Text + " " + OtchLabel.Text;                string num = "", izd = "", countizd = "", tkan = "",                    fur = "", countfur = "", zakazchik = "";                for (int i = 0; i <= DgvZakaz.SelectedRows.Count - 1; i++)  // перебор записей в таблице                {                    num += (i + 1).ToString() + "." + "\r\n";                    izd += DgvZakaz.SelectedRows[i].Cells[0].Value + "\r\n";                    countizd += DgvZakaz.SelectedRows[i].Cells[1].Value + "\r\n";                    tkan += DgvZakaz.SelectedRows[i].Cells[2].Value + "\r\n";                    fur += DgvZakaz.SelectedRows[i].Cells[3].Value + "\r\n";                    countfur += DgvZakaz.SelectedRows[i].Cells[4].Value + "\r\n";                    zakazchik += DgvZakaz.SelectedRows[i].Cells[5].Value + "\r\n";                }                WBmark["num"].Range.Text = num.Trim();                WBmark["izd"].Range.Text = izd.Trim();                WBmark["countizd"].Range.Text = countizd.Trim();                WBmark["tkan"].Range.Text = tkan.Trim();                WBmark["fur"].Range.Text = fur.Trim();                WBmark["countfur"].Range.Text = countfur.Trim();                WBmark["zak"].Range.Text = zakazchik.Trim();            }            else            {                if (saveFileDialog1.ShowDialog() == DialogResult.OK)                {                    StreamWriter f = new StreamWriter(saveFileDialog1.FileName);                    string t = "izd;countizd;tkan;furnitura;countfur;zakazchik";                    f.WriteLine(t);                    for (int i = 0; i <= DgvZakaz.SelectedRows.Count - 1; i++)                    {                        t = "";                        t += DgvZakaz.SelectedRows[i].Cells[0].Value + ";";                        t += DgvZakaz.SelectedRows[i].Cells[1].Value + ";";                        t += DgvZakaz.SelectedRows[i].Cells[2].Value + ";";                        t += DgvZakaz.SelectedRows[i].Cells[3].Value + ";";                        t += DgvZakaz.SelectedRows[i].Cells[4].Value + ";";                        t += DgvZakaz.SelectedRows[i].Cells[5].Value;                        f.WriteLine(t);                    }                    f.Close();                }            }        }    }}
 |