FormMain.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace Швейная_фабрика
  11. {
  12. public partial class FormMain : Form
  13. {
  14. public FormMain()
  15. {
  16. InitializeComponent();
  17. }
  18. public static string IDUser = "0";
  19. string GetCapcha()
  20. {
  21. string TxtLetter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  22. string TxtDigit = "0123456789";
  23. string t1 = TxtLetter + TxtDigit;
  24. string capcha = "";
  25. bool FlagDigit = false;
  26. Random rnd = new Random();
  27. for (int i = 1; i <= 3; i++)
  28. {
  29. // взять символ из строки с символами для капчи
  30. char sim = t1[rnd.Next(t1.Length)];
  31. // если символ - цифра, запомнить это
  32. if (char.IsDigit(sim)) FlagDigit = true;
  33. capcha += sim; // добавить символ к капче
  34. }
  35. if (FlagDigit == false)
  36. capcha += TxtDigit[rnd.Next(TxtDigit.Length)];
  37. else
  38. capcha += TxtLetter[rnd.Next(TxtLetter.Length)];
  39. return capcha;
  40. }
  41. private void BtnLogin_Click(object sender, EventArgs e)
  42. {
  43. //if (TbxCapcha.Text.ToUpper() != LblCapcha.Text)
  44. //{
  45. // MessageBox.Show("Символы капчи введены неверно!\nПопробуйте еще раз.");
  46. // LblCapcha.Text = GetCapcha();
  47. // TbxCapcha.Clear();
  48. // return;
  49. //}
  50. // роль пользователя (считывается из ComboBox)
  51. string role = CmbRole.SelectedItem.ToString();
  52. // фильтр для таблицы Пользователи
  53. string TxtFilter = string.Format("login = '{0}' and pass = '{1}' and role = '{2}'", TbxLogin.Text, TbxPass.Text, (CmbRole.SelectedIndex +1).ToString());
  54. // логин для передачи на рабочее место
  55. string TxtFilterForUser = string.Format("login = '{0}'", TbxLogin.Text);
  56. BsUsers.Filter = TxtFilter; // включить фильтр
  57. if (BsUsers.Count == 0)
  58. {
  59. MessageBox.Show(String.Format("Нет пользователя '{0}' с указанным логином и паролем!", role));
  60. return;
  61. }
  62. TbxLogin.Clear(); TbxPass.Clear(); // очистить поля
  63. this.Visible = false; // скрыть форму для авторизации
  64. IDUser = LblIdUser.Text;
  65. if (role == "заказчик")
  66. {
  67. // создать форму для заказчика
  68. FormZakazchik frm = new FormZakazchik();
  69. // отфильтровать авторизовавшегося пользователя
  70. frm.BsUsers.Filter = TxtFilterForUser;
  71. frm.ShowDialog();
  72. }
  73. if (role == "менеджер")
  74. {
  75. // создать форму для менеджера
  76. FormManager frm = new FormManager();
  77. // отфильтровать авторизовавшегося пользователя
  78. //frm.BsUsers.Filter = TxtFilterForUser;
  79. frm.ShowDialog();
  80. }
  81. if (role == "кладовщик")
  82. {
  83. // создать форму для кладовщика
  84. FormKladovschik frm = new FormKladovschik();
  85. // отфильтровать авторизовавшегося пользователя
  86. frm.BsUsers.Filter = TxtFilterForUser;
  87. frm.ShowDialog();
  88. }
  89. this.Visible = true; // показать форму для авторизации
  90. // загрузить обновленные записи из БД
  91. this.usersTableAdapter.Fill(this.сlothesFactoryLGDataSet.Users);
  92. TbxLogin.Focus();
  93. TbxCapcha.Clear();
  94. LblCapcha.Text = GetCapcha();
  95. }
  96. private void FormMain_Load(object sender, EventArgs e)
  97. {
  98. // TODO: данная строка кода позволяет загрузить данные в таблицу "сlothesFactoryLGDataSet.Users". При необходимости она может быть перемещена или удалена.
  99. this.usersTableAdapter.Fill(this.сlothesFactoryLGDataSet.Users);
  100. CmbRole.SelectedIndex = 0;
  101. LblCapcha.Text = GetCapcha();
  102. }
  103. private void CbxShowPass_CheckedChanged(object sender, EventArgs e)
  104. {
  105. TbxPass.UseSystemPasswordChar = !TbxPass.UseSystemPasswordChar;
  106. }
  107. private void LblCapcha_Paint(object sender, PaintEventArgs e)
  108. {
  109. // массив цветов
  110. Color[] colors = { Color.Green, Color.Black, Color.Yellow, Color.White };
  111. Random rnd = new Random();
  112. // изобразить от 5 до 10 линий
  113. for (int i = 1; i <= rnd.Next(5, 11); i++)
  114. {
  115. // координаты начала и конца отрезка
  116. int x1 = rnd.Next(LblCapcha.Width);
  117. int y1 = rnd.Next(LblCapcha.Height);
  118. int x2 = rnd.Next(LblCapcha.Width);
  119. int y2 = rnd.Next(LblCapcha.Height);
  120. // случайный цвет из массива цветов
  121. Color col = colors[rnd.Next(colors.Length)];
  122. // нарисовать линию на метке Label
  123. e.Graphics.DrawLine(new Pen(col), x1, y1, x2, y2);
  124. }
  125. }
  126. private void LblReg_Click(object sender, EventArgs e)
  127. {
  128. FormReg frm = new FormReg();
  129. if (frm.ShowDialog() == DialogResult.OK)
  130. this.usersTableAdapter.Fill(this.сlothesFactoryLGDataSet.Users);
  131. }
  132. }
  133. }