Advertisement
Guest User

Форма

a guest
Jan 17th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.46 KB | None | 0 0
  1. using ExscelOpenSQL;
  2. using Excel = Microsoft.Office.Interop.Excel;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Data.SqlClient;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Text.RegularExpressions;
  12. using System.Threading.Tasks;
  13. using System.Windows.Forms;
  14. using System.IO;
  15. using System.Runtime.InteropServices;
  16. using System.Drawing.Printing;
  17.  
  18. namespace ExcelOpenSQL
  19. {
  20.     public partial class Form1 : Form
  21.     {
  22.         /// <summary>
  23.         /// переменная счётчик строк в dgv2
  24.         /// </summary>
  25.         private int indexRowDataGrid2 = 0;
  26.  
  27.         /// <summary>
  28.         /// имя таблицы используется для вывода в итоговую таблицу
  29.         /// </summary>
  30.         private string nameTable;
  31.  
  32.         private string connectionString;
  33.  
  34.         /// <summary>
  35.         /// подключаемся через стркоу в файле или используем дефолтное подключение
  36.         /// </summary>
  37.         public void openConnection()
  38.         {
  39.             try
  40.             {
  41.                 StreamReader sr = new StreamReader(@"connectionString.txt");
  42.                 connectionString =  sr.ReadLine();
  43.             }
  44.             catch
  45.             {
  46.                 connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=Excel;Integrated Security=True";
  47.             }
  48.         }
  49.  
  50.         /// <summary>
  51.         /// сохранение в файл нового курса
  52.         /// </summary>
  53.         public void saveRates()
  54.         {
  55.             using (StreamWriter sw = new StreamWriter(@"rates.txt", false))
  56.             {
  57.                 sw.WriteLine(rates.Text);
  58.                 sw.Close();
  59.             }
  60.         }
  61.  
  62.         /// <summary>
  63.         /// извлекаем из файла актуальынй курс валют
  64.         /// </summary>
  65.         /// <returns></returns>
  66.         public string openRates()
  67.         {
  68.             try
  69.             {
  70.                 StreamReader sr = new StreamReader(@"rates.txt");
  71.                 string str = sr.ReadLine();
  72.                 sr.Close();
  73.                 return str;
  74.             }
  75.             catch
  76.             {
  77.                 InputRates ir = new InputRates("");
  78.                 return ir.getRates;
  79.             }
  80.         }
  81.  
  82.         public Form1()
  83.         {
  84.             try
  85.             {
  86.                 InitializeComponent();
  87.                 DoubleBuffered = true;
  88.                 SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
  89.                 openConnection();
  90.                 rates.Text = openRates();
  91.                 ExchangeRates er = new ExchangeRates();
  92.                 rates.Text = (double.Parse(er.convert(rates.Text))).ToString();
  93.                 DataGridSetting dg = new DataGridSetting();
  94.                 dg.dataGrid2Size(dataGridView2, "Название товара", "Цена USD", "Цена BYR", "Кол-во");
  95.                 //MessageBox.Show(er.tutByRates("https://www.tut.by/"));
  96.             }
  97.             catch (Exception ex)
  98.             {
  99.                 MessageBox.Show(ex.Message);
  100.             }
  101.         }
  102.  
  103.         /// <summary>
  104.         /// добавление строки в другую таблицу
  105.         /// </summary>
  106.         /// <param name="sender"></param>
  107.         /// <param name="e"></param>
  108.         private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
  109.         {
  110.             try
  111.             {
  112.                 DataGridSetting dg = new DataGridSetting();
  113.                 dg.addRows(dataGridView1, dataGridView2, rates, indexRowDataGrid2, e.RowIndex, nameTable);
  114.                 indexRowDataGrid2++;
  115.                 usd.Text = dg.priceCount(dataGridView2, 1);
  116.                 byr.Text = dg.priceCount(dataGridView2, 2);
  117.             }
  118.             catch(Exception ex)
  119.             {
  120.                 MessageBox.Show(ex.Message);
  121.             }
  122.         }
  123.  
  124.         /// <summary>
  125.         /// удаление строки из другой таблицы
  126.         /// </summary>
  127.         /// <param name="sender"></param>
  128.         /// <param name="e"></param>
  129.         private void dataGridView2_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
  130.         {
  131.             try
  132.             {
  133.                 dataGridView2.Rows.RemoveAt(e.RowIndex);
  134.                 DataGridSetting dg = new DataGridSetting();
  135.                 usd.Text = dg.priceCount(dataGridView2, 1);
  136.                 byr.Text = dg.priceCount(dataGridView2, 2);
  137.                 indexRowDataGrid2--;
  138.             }
  139.             catch (Exception ex)
  140.             {
  141.                 MessageBox.Show(ex.Message);
  142.             }
  143.         }
  144.  
  145.         /// <summary>
  146.         /// очищаем вторую таблицу
  147.         /// </summary>
  148.         /// <param name="sender"></param>
  149.         /// <param name="e"></param>
  150.         private void очиститьТаблицуToolStripMenuItem_Click(object sender, EventArgs e)
  151.         {
  152.             try
  153.             {
  154.                 dataGridView2.Rows.Clear();
  155.                 usd.Text = "0";
  156.                 byr.Text = "0";
  157.                 indexRowDataGrid2 = 0;
  158.             }
  159.             catch(Exception ex)
  160.             {
  161.                 MessageBox.Show(ex.Message);
  162.             }
  163.         }
  164.  
  165.         private void выйтиToolStripMenuItem_Click(object sender, EventArgs e)
  166.         {
  167.             Application.Exit();
  168.         }
  169.  
  170.         /// <summary>
  171.         /// событие нажатия энтера когда активен текстбокс, как альтернатива нажатия кнопки
  172.         /// </summary>
  173.         /// <param name="sender"></param>
  174.         /// <param name="e"></param>
  175.         private void textBox1_KeyDown(object sender, KeyEventArgs e)
  176.         {
  177.             try
  178.             {
  179.                 if (e.KeyCode == Keys.Enter)
  180.                     if (textBox2.Text != "")
  181.                     {
  182.                         DataGridSetting dg = new DataGridSetting();
  183.                         dg.searchId(dataGridView1, textBox2);
  184.                     }
  185.             }
  186.             catch(Exception ex)
  187.             {
  188.                 MessageBox.Show(ex.Message);
  189.             }
  190.         }
  191.  
  192.         private void печататьToolStripMenuItem_Click(object sender, EventArgs e)
  193.         {
  194.             try
  195.             {
  196.                 ParseTextTable ptt = new ParseTextTable();
  197.                 ptt.parseTextDataGrid(dataGridView2);   // парсим текст таблицы что бы влазил в эксель
  198.                 ExcelFile ex = new ExcelFile();
  199.                 ex.saveExcel(dataGridView2, usd, byr, ptt.ListDGV2Name, ptt.ListDGV2USD, ptt.ListDGV2BYR, ptt.ListDGV2Count, "File");  // сохраняем в эсель файл
  200.             }
  201.             catch (Exception ex)
  202.             {
  203.                 MessageBox.Show(ex.Message);
  204.             }
  205.         }
  206.  
  207.         /// <summary>
  208.         /// вносим изменения в цены после редактирования ячейки количества товара
  209.         /// </summary>
  210.         /// <param name="sender
  211.         /// <param name="e"></param>
  212.         private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
  213.         {
  214.             try
  215.             {
  216.                 DataGridSetting dg = new DataGridSetting();
  217.                 dg.editPrice(dataGridView2, usd, byr, e.RowIndex);
  218.                 usd.Text = dg.priceCount(dataGridView2, 1);
  219.                 byr.Text = dg.priceCount(dataGridView2, 2);
  220.             }
  221.             catch (Exception ex)
  222.             {
  223.                 MessageBox.Show(ex.Message);
  224.             }
  225.         }
  226.  
  227.         /// <summary>
  228.         /// поиск по индексу с переходом на нужную строку
  229.         /// </summary>
  230.         /// <param name="sender"></param>
  231.         /// <param name="e"></param>
  232.         private void button2_Click(object sender, EventArgs e)
  233.         {
  234.             try
  235.             {
  236.                 DataGridSetting dg = new DataGridSetting();
  237.                 dg.searchId(dataGridView1, textBox2);
  238.             }
  239.             catch (Exception ex)
  240.             {
  241.                 MessageBox.Show(ex.Message);
  242.             }
  243. }
  244.  
  245.         /// <summary>
  246.         /// вывод первого прайса
  247.         /// </summary>
  248.         /// <param name="sender"></param>
  249.         /// <param name="e"></param>
  250.         private void перезагрузитьToolStripMenuItem_Click(object sender, EventArgs e)
  251.         {
  252.             try
  253.             {
  254.                 nameTable = "Price";
  255.                 DataGridSetting dg = new DataGridSetting();
  256.                 dg.dataBaseToDataGrid(dataGridView1, connectionString, nameTable, "id", "Название товара", "Цена USD", "Цена BYR");
  257.                 dg.dataBasePriceUSD(dataGridView1, rates.Text);
  258.             }
  259.             catch (Exception ex)
  260.             {
  261.                 MessageBox.Show(ex.Message);
  262.             }
  263.         }
  264.  
  265.         /// <summary>
  266.         /// вывод прайса розма
  267.         /// </summary>
  268.         /// <param name="sender"></param>
  269.         /// <param name="e"></param>
  270.         private void рОЗМАToolStripMenuItem_Click(object sender, EventArgs e)
  271.         {
  272.             try
  273.             {
  274.                 nameTable = "ROZMA";
  275.                 DataGridSetting dg = new DataGridSetting();
  276.                 dg.dataBaseToDataGrid(dataGridView1, connectionString, nameTable, "id", "Название товара", "Размер", "Цена рублей");
  277.                 dg.NDS(dataGridView1, 30);
  278.             }
  279.             catch(Exception ex)
  280.             {
  281.                 MessageBox.Show(ex.Message);
  282.             }
  283. }
  284.  
  285.         /// <summary>
  286.         /// изменить курс доллара
  287.         /// </summary>
  288.         /// <param name="sender"></param>
  289.         /// <param name="e"></param>
  290.         private void курсДоллараToolStripMenuItem_Click(object sender, EventArgs e)
  291.         {
  292.             try
  293.             {
  294.                 InputRates input = new InputRates(rates.Text);
  295.                 input.ShowDialog();
  296.                 rates.Text = input.getRates;
  297.                 saveRates();
  298.                 ExchangeRates er = new ExchangeRates();
  299.                 DataGridSetting dg = new DataGridSetting();
  300.                 if (nameTable == "Price")
  301.                     dg.dataBasePriceUSD(dataGridView1, rates.Text);
  302.             }
  303.             catch (Exception ex)
  304.             {
  305.                 MessageBox.Show(ex.Message);
  306.             }
  307.         }
  308.  
  309.         /// <summary>
  310.         /// печатать
  311.         /// </summary>
  312.         /// <param name="sender"></param>
  313.         /// <param name="e"></param>
  314.         private void печататьToolStripMenuItem1_Click(object sender, EventArgs e)
  315.         {
  316.             try
  317.             {
  318.                 ParseTextTable ptt = new ParseTextTable();
  319.                 ptt.parseTextDataGrid(dataGridView2);   // парсим текст таблицы что бы влазил в эксель
  320.                 ExcelFile ex = new ExcelFile();
  321.                 ex.saveExcel(dataGridView2, usd, byr, ptt.ListDGV2Name, ptt.ListDGV2USD, ptt.ListDGV2BYR, ptt.ListDGV2Count, "Print");
  322.             }
  323.             catch (Exception ex)
  324.             {
  325.                 MessageBox.Show(ex.Message);
  326.             }
  327.         }
  328.     }
  329. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement