FManager.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. using System.Xml;
  13. using Word = Microsoft.Office.Interop.Word;
  14. namespace Фабрика
  15. {
  16. public partial class FManager : Form
  17. {
  18. public FManager()
  19. {
  20. InitializeComponent();
  21. }
  22. public string IdZakazchik = "";
  23. string IdTkan = "", IdFur = "";
  24. public struct Tkani
  25. {
  26. public string IdTkan, NameTkan, ColorTkan, Width, Length, Description;
  27. public Image PhotoTkan;
  28. }
  29. List<Tkani> LstTkani = new List<Tkani>();
  30. void GetTkaniFromDB()
  31. {
  32. SqlConnection con = new SqlConnection(Properties.Settings.Default.dbFabrika2024ConnectionString);
  33. con.Open();
  34. SqlCommand Query = new SqlCommand("select * from Tkani t join Cveta c on t.id_cvet=c.id_cvet where Dlina > 0", con);
  35. SqlDataReader Data = Query.ExecuteReader();
  36. while (Data.Read())
  37. {
  38. Tkani Tk = new Tkani();
  39. Tk.IdTkan = Data["id_Tkani"].ToString();
  40. Tk.NameTkan = Data["Nazvanie"].ToString();
  41. Tk.ColorTkan = Data["Name_cvet"].ToString();
  42. Tk.Width = Data["Shirina"].ToString();
  43. Tk.Length = Data["Dlina"].ToString();
  44. Tk.Description = Data["Primechanie"].ToString();
  45. try
  46. {
  47. // загрузить из таблицы БД байты фотографии в массив
  48. byte[] PhotoByte = (byte[])Data["Photo"];
  49. ImageConverter ImConverter = new ImageConverter();
  50. // сконвертировать массив байт в изображение
  51. Tk.PhotoTkan = (Bitmap)ImConverter.ConvertFrom(PhotoByte);
  52. }
  53. catch
  54. {
  55. // в случае ошибки загрузить пустое изображение из ресурсов
  56. Tk.PhotoTkan = Properties.Resources.picture;
  57. }
  58. LstTkani.Add(Tk); // добавить в список новую ткань
  59. }
  60. con.Close();
  61. }
  62. void FillLVTkani()
  63. {
  64. LVTkani.Items.Clear();
  65. ImageListTkani.Images.Clear();
  66. foreach (Tkani Tk in LstTkani)
  67. {
  68. // новый элемент для ListView с названием ткани
  69. ListViewItem LV = new ListViewItem(Tk.NameTkan);
  70. // в ImageList добавить изображение ткани
  71. ImageListTkani.Images.Add(Tk.PhotoTkan);
  72. // связать последнее добавленное изображение с новым элементом ListView
  73. LV.ImageIndex = ImageListTkani.Images.Count - 1;
  74. LVTkani.Items.Add(LV); // добавить новый элемент к ListView
  75. }
  76. }
  77. public struct Furnitura
  78. {
  79. public string IdFur, NameFur, CountFur;
  80. public Image PhotoFur;
  81. }
  82. List<Furnitura> LstFurnitura = new List<Furnitura>();
  83. void GetFurnituraFromDB()
  84. {
  85. SqlConnection con = new SqlConnection(Properties.Settings.Default.dbFabrika2024ConnectionString);
  86. con.Open();
  87. SqlCommand Query = new SqlCommand("select * from Furnitura where countfur > 0", con);
  88. SqlDataReader Data = Query.ExecuteReader();
  89. while (Data.Read())
  90. {
  91. Furnitura Fr = new Furnitura();
  92. Fr.IdFur = Data["idfur"].ToString();
  93. Fr.NameFur = Data["namefur"].ToString();
  94. Fr.CountFur = Data["countfur"].ToString();
  95. try
  96. {
  97. // загрузить из таблицы БД байты фотографии в массив
  98. byte[] PhotoByte = (byte[])Data["photo"];
  99. ImageConverter ImConverter = new ImageConverter();
  100. // сконвертировать массив байт в изображение
  101. Fr.PhotoFur = (Bitmap)ImConverter.ConvertFrom(PhotoByte);
  102. }
  103. catch
  104. {
  105. // в случае ошибки загрузить пустое изображение из ресурсов
  106. Fr.PhotoFur = Properties.Resources.picture;
  107. }
  108. LstFurnitura.Add(Fr); // добавить в список новую фурнитуру
  109. }
  110. con.Close();
  111. }
  112. void FillLVFurnitura()
  113. {
  114. LVFurnitura.Items.Clear();
  115. ImageListFur.Images.Clear();
  116. foreach (Furnitura Fr in LstFurnitura)
  117. {
  118. // новый элемент для ListView с названием фурнитуры
  119. ListViewItem LV = new ListViewItem(Fr.NameFur);
  120. // в ImageList добавить изображение фурнитуры
  121. ImageListFur.Images.Add(Fr.PhotoFur);
  122. // связать последнее добавленное изображение с новым элементом ListView
  123. LV.ImageIndex = ImageListFur.Images.Count - 1;
  124. LVFurnitura.Items.Add(LV); // добавить новый элемент к ListView
  125. }
  126. }
  127. private void FManager_Load(object sender, EventArgs e)
  128. {
  129. // TODO: данная строка кода позволяет загрузить данные в таблицу "dbFabrika2024DataSet.Izdelie". При необходимости она может быть перемещена или удалена.
  130. this.izdelieTableAdapter.Fill(this.dbFabrika2024DataSet.Izdelie);
  131. // TODO: данная строка кода позволяет загрузить данные в таблицу "dbFabrika2024DataSet.Users". При необходимости она может быть перемещена или удалена.
  132. this.usersTableAdapter.Fill(this.dbFabrika2024DataSet.Users);
  133. FillListZakaz();
  134. GetTkaniFromDB();
  135. FillLVTkani();
  136. GetFurnituraFromDB();
  137. FillLVFurnitura();
  138. }
  139. void FillListZakaz()
  140. {
  141. SqlConnection con = new SqlConnection(Properties.Settings.Default.dbFabrika2024ConnectionString);
  142. DgvZakaz.Rows.Clear();
  143. string Query = $@"select Izdelie.name_izd,
  144. Orders.CountIzdel,
  145. Tkani.Nazvanie ,
  146. Furnitura.namefur ,
  147. Orders.CountFurnit ,
  148. Users.Surname
  149. from Orders, Users, Tkani, Furnitura, Izdelie
  150. where Users.id_User = Orders.id_zakaz
  151. and Tkani.Id_Tkani = Orders.id_tkani
  152. and Furnitura.idfur = Orders.id_furnitur
  153. and Izdelie.id_izdelie = Orders.id_izdelie
  154. and Orders.id_manager = "+ id_userLabel1.Text;
  155. con.Open();
  156. SqlCommand cmd = new SqlCommand(Query, con);
  157. SqlDataReader Rez = cmd.ExecuteReader();
  158. if (DgvZakaz.Rows.Count > 0)
  159. {
  160. DgvZakaz.Rows.Clear();
  161. }
  162. while (Rez.Read())
  163. {
  164. DgvZakaz.Rows.Add(Rez["name_izd"], Rez["Nazvanie"], Rez["namefur"], Rez["CountFurnit"], Rez["CountIzdel"], Rez["Surname"]);
  165. }
  166. con.Close();
  167. }
  168. private void BtnProfile_Click(object sender, EventArgs e)
  169. {
  170. FProfile frm = new FProfile();
  171. frm.usersBindingSource.Filter = this.usersBindingSource.Filter;
  172. if (frm.ShowDialog() == DialogResult.OK)
  173. {
  174. this.usersTableAdapter.Fill(this.dbFabrika2024DataSet.Users);
  175. }
  176. }
  177. private void BtnAdd_Click(object sender, EventArgs e)
  178. {
  179. izdelieBindingSource.AddNew();
  180. BtnSave.Enabled = true;
  181. BtnAdd.Enabled = false;
  182. BtnEdit.Enabled = false;
  183. izdelka.Enabled = false;
  184. TbxNameIzd.Enabled = true;
  185. TbxLengthIzd.Enabled = true;
  186. TbxWidthIzd.Enabled = true;
  187. }
  188. private void BtnEdit_Click(object sender, EventArgs e)
  189. {
  190. BtnSave.Enabled = true;
  191. BtnAdd.Enabled = false;
  192. BtnEdit.Enabled = false;
  193. izdelka.Enabled = false;
  194. TbxNameIzd.Enabled = true;
  195. TbxLengthIzd.Enabled = true;
  196. TbxWidthIzd.Enabled = true;
  197. }
  198. private void BtnSave_Click(object sender, EventArgs e)
  199. {
  200. izdelieBindingSource.EndEdit();
  201. this.izdelieTableAdapter.Update(this.dbFabrika2024DataSet.Izdelie);
  202. BtnSave.Enabled = false;
  203. BtnAdd.Enabled = true;
  204. BtnEdit.Enabled = true;
  205. izdelka.Enabled = true;
  206. TbxNameIzd.Enabled = false;
  207. TbxLengthIzd.Enabled = false;
  208. TbxWidthIzd.Enabled = false;
  209. }
  210. private void BtnAll_Click(object sender, EventArgs e)
  211. {
  212. if(RbtWord.Checked)
  213. {
  214. MessageBox.Show("Заказ экспартирован");
  215. }
  216. else
  217. {
  218. MessageBox.Show("Заказ экспартирован");
  219. }
  220. }
  221. private void LVFurnitura_SelectedIndexChanged(object sender, EventArgs e)
  222. {
  223. if (LVFurnitura.SelectedItems.Count > 0) // есть выделенные элементы
  224. {
  225. int num = LVFurnitura.SelectedIndices[0]; // номер выделенного элемента
  226. TbxCountFurSklad.Text = LstFurnitura[num].CountFur;
  227. TbxNameFur.Text = LstFurnitura[num].NameFur;
  228. }
  229. else // нет выделенных элементов
  230. {
  231. TbxCountFurSklad.Text = "";
  232. TbxNameFur.Text = "";
  233. }
  234. }
  235. private void LVTkani_SelectedIndexChanged(object sender, EventArgs e)
  236. {
  237. if (LVTkani.SelectedItems.Count > 0) // есть выделенные элементы
  238. {
  239. int num = LVTkani.SelectedIndices[0]; // номер выделенного элемента
  240. NametkanTextBox.Text = LstTkani[num].NameTkan;
  241. ColorTextBox.Text = LstTkani[num].ColorTkan;
  242. WidthTextBox.Text = LstTkani[num].Width;
  243. LengthTextBox.Text = LstTkani[num].Length;
  244. DescriptionTextBox.Text = LstTkani[num].Description;
  245. }
  246. else // нет выделенных элементов
  247. {
  248. NametkanTextBox.Text = "";
  249. ColorTextBox.Text = "";
  250. WidthTextBox.Text = "";
  251. LengthTextBox.Text = "";
  252. DescriptionTextBox.Text = "";
  253. }
  254. }
  255. private void BtnSelect_Click(object sender, EventArgs e)
  256. {
  257. if (RbtWord.Checked)
  258. {
  259. MessageBox.Show("Заказ экспартирован");
  260. }
  261. else
  262. {
  263. MessageBox.Show("Заказ экспартирован");
  264. }
  265. }
  266. }
  267. }