123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Data.SqlClient;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Демо
- {
- public partial class Каталог : Form
- {
- public Каталог()
- {
- InitializeComponent();
- SqlConnection cn;
- Program.conn(out cn);
- Program.Role.id = 0;
- SqlDataAdapter da = new SqlDataAdapter();
- DataTable table = new DataTable();
- buttonBack.Visible = false;
- SqlCommand command = new SqlCommand("select * from Услуги", cn);
- da.SelectCommand = command;
- da.Fill(table);
- Program.Role.table = table;
- if (table.Rows.Count % 4 == 0) strLab.Text = "/ " + (table.Rows.Count / 4).ToString();
- else strLab.Text = "/ " + (table.Rows.Count / 4 + 1).ToString();
- Fill();
- }
- private void Fill()
- {
- DataTable table = new DataTable();
- table = Program.Role.table;
- Label[] LB;
- PictureBox[] PB;
- TableLayoutPanel[] TB;
- int q = 0;
- LB = new Label[] { label1, label2, label3, label4 };
- PB = new PictureBox[] { pic1, pic2, pic3, pic4 };
- TB = new TableLayoutPanel[]{ tLP1, tLP2,tLP3,tLP4 };
- int n = 4;
- pic1.Visible = true;
- strLab.Visible = true;
- strNum.Visible = true;
- for (int i = 0; i < n; i++)
- {
- if (strNum.Text == strLab.Text.Substring(2))
- {
- buttonNext.Visible = false;
- if (strNum.Text.Equals("1")) buttonBack.Visible = false;
- else buttonBack.Visible = true;
- if (table.Rows.Count % 4 != 0)
- {
- if ((table.Rows.Count % 4 <= 3) && (q == 0))
- {
- tLP4.Visible = false;
- n--;
- }
- if ((table.Rows.Count % 4 <= 2) && (q == 0))
- {
- tLP3.Visible = false;
- n--;
- }
- if ((table.Rows.Count % 4 <= 1) && (q == 0))
- {
- tLP2.Visible = false;
- n--;
- }
- if ((table.Rows.Count == 0) && (q == 0))
- {
- tLP1.Visible = false;
- n--;
- }
- q++;
- }
- }
- else
- {
- if (strNum.Text.Equals("1")) buttonBack.Visible = false;
- else buttonBack.Visible = true;
- tLP1.Visible = true;
- tLP2.Visible = true;
- tLP3.Visible = true;
- tLP4.Visible = true;
- if (strLab.Text.Equals("/ 1")) buttonNext.Visible = false;
- else buttonNext.Visible = true;
- }
- if (table.Rows.Count != 0)
- {
- LB[i].Text = table.Rows[Program.Role.id]["Наименование"].ToString() + "\n\n";
- if (table.Rows[Program.Role.id]["Скидка"].ToString() != "")
- {
- LB[i].Text += table.Rows[Program.Role.id]["Стоимость_руб"].ToString();
- LB[i].Text += " " + (Convert.ToInt32(table.Rows[Program.Role.id]["Стоимость_руб"]) - (Convert.ToInt32(table.Rows[Program.Role.id]["Стоимость_руб"]) * (Convert.ToDouble(table.Rows[Program.Role.id]["Скидка"])))).ToString();
- TB[i].BackColor = Color.LightGreen;
- }
- else
- {
- LB[i].Text += table.Rows[Program.Role.id]["Стоимость_руб"].ToString();
- TB[i].BackColor = Color.White;
- }
- LB[i].Text += " рублей за " +
- table.Rows[Program.Role.id]["Длительность_мин"].ToString() + " минут \n";
- if (table.Rows[Program.Role.id]["Скидка"].ToString() != "")
- LB[i].Text += "* скидка " + (Convert.ToDouble(table.Rows[Program.Role.id]["Скидка"]) * 100) + "%";
- string img = table.Rows[Program.Role.id]["Изображение"].ToString().Trim();
- if ((img == "не указано") || (img == "отсутствует")) PB[i].Image = new Bitmap("products\\net.jpg");
- else PB[i].Image = new Bitmap(img);
- Program.Role.id++;
- }
- else
- {
- if ((table.Rows.Count % 4 <= 3) && (q == 0))
- {
- tLP4.Visible = false;
- n--;
- }
- if ((table.Rows.Count % 4 <= 2) && (q == 0))
- {
- tLP3.Visible = false;
- n--;
- }
- if ((table.Rows.Count % 4 <= 1) && (q == 0))
- {
- tLP2.Visible = false;
- n--;
- }
- if ((table.Rows.Count == 0) && (q == 0))
- {
- pic1.Visible = false;
- label1.Text = "По вашему запросу ничего не найдено";
- buttonBack.Visible = false;
- buttonNext.Visible = false;
- strLab.Visible = false;
- strNum.Visible = false;
- n--;
- }
- q++;
- break;
- }
- }
- q = 0;
- }
- private void buttonNextAndBackGrid_Click(object sender, EventArgs e)
- {
- DataTable table = new DataTable();
- string name = (sender as Button).Name;
- table = Program.Role.table;
- if (name == "buttonBack")
- {
- if (strNum.Text == strLab.Text.Substring(2))
- {
- if (table.Rows.Count % 4 == 0) Program.Role.id -= 8; // 4 из 4
- if (table.Rows.Count % 4 == 1) Program.Role.id -= 5; // 1 из 4
- if (table.Rows.Count % 4 == 2) Program.Role.id -= 6; // 2 из 4
- if (table.Rows.Count % 4 == 3) Program.Role.id -= 7; // 3 из 4
- }
- else
- {
- Program.Role.id -= 8;
- }
- tLP1.Visible = true;
- tLP2.Visible = true;
- tLP3.Visible = true;
- tLP4.Visible = true;
- strNum.Text = (Convert.ToInt32(strNum.Text) - 1).ToString();
- }
- else strNum.Text = (Convert.ToInt32(strNum.Text) + 1).ToString();
- Fill();
- }
- private void strNum_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- if ((Convert.ToInt32(strNum.Text) > 0) && (Convert.ToInt32(strNum.Text) <= Convert.ToInt32(strLab.Text.Substring(2))))
- {
- if (Convert.ToInt32(strNum.Text) >= 4)
- {
- buttonBack.Visible = true;
- }
- Program.Role.id = (Convert.ToInt32(strNum.Text) - 1) * 4;
- }
- else
- {
- strNum.Text = "1";
- Program.Role.id = 0;
- MessageBox.Show("Введите число в диапозоне от 0 до " + strLab.Text.Substring(2), "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- }
- Fill();
- }
- }
- private void Sorts_SelectedIndexChanged(object sender, EventArgs e)
- {
- DataTable table = new DataTable();
- switch (Sorts.Text)
- {
- case "Цена +":
- Program.Role.table.DefaultView.Sort = " Стоимость_руб ASC";
- break;
- case "Цена -":
- Program.Role.table.DefaultView.Sort = " Стоимость_руб DESC";
- break;
- case "Наименование +":
- Program.Role.table.DefaultView.Sort = "Наименование ASC";
- break;
- case "Наименование -":
- Program.Role.table.DefaultView.Sort = "Наименование DESC";
- break;
- case "Длительность +":
- Program.Role.table.DefaultView.Sort = "Длительность_мин ASC";
- break;
- case "Длительность -":
- Program.Role.table.DefaultView.Sort = "Длительность_мин DESC";
- break;
- }
- strNum.Text = "1";
- Program.Role.id = 0;
- Program.Role.table = Program.Role.table.DefaultView.ToTable(true);
- Fill();
- }
- private void Каталог_FormClosing(object sender, FormClosingEventArgs e)
- {
- Program.mainf = null;
- }
- private void textBox1_TextChanged(object sender, EventArgs e)
- {
- try
- {
- SqlConnection dbConnection;
- Program.conn(out dbConnection);
- SqlDataAdapter da = new SqlDataAdapter();
- DataTable table = new DataTable();
- string strok = textBox1.Text;
- strNum.Text = "1";
- string SqlText = "select * from Услуги";
- if (textBox1.Text != "") SqlText = SqlText + " where (Наименование Like \'%" + strok + "%\' or Стоимость_руб like \'%" + strok +
- "%\' or Длительность_мин like \'%" + strok + "%\')";
- SqlCommand command = new SqlCommand(SqlText, dbConnection);
- da.SelectCommand = command;
- da.Fill(table);
- Program.Role.table = table;
- Program.Role.id = 0;
- if (table.Rows.Count % 4 == 0) strLab.Text = "/ " + (table.Rows.Count / 4).ToString();
- else strLab.Text = "/ " + (table.Rows.Count / 4 + 1).ToString();
- Fill();
- }
- catch
- {
- MessageBox.Show("Избегайте символа ' ", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- textBox1.Text = "";
- }
- }
- private void label1_Click(object sender, EventArgs e)
- {
- }
- }
- }
|