예제 #1
0
        private void TB_search_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(TB_LastName.Text) && string.IsNullOrWhiteSpace(TB_FirstName.Text) && string.IsNullOrWhiteSpace(TB_Patronymic.Text))
            {
                LoadGrid();
                return;
            }

            Task.Factory.StartNew(() =>
            {
                P_Loading.Show();
                L_LoadText.Text   = "Идет поиск данных";
                TB_search.Enabled = false;

                DataGridView new_dgv = new DataGridView();                 //буфер для загрузки данных
                foreach (DataGridViewColumn column in DGV_invoice.Columns) //скопировали структуру таблицы во временную таблицу
                {
                    new_dgv.Columns.Add((DataGridViewColumn)column.Clone());
                }

                foreach (DataGridViewRow row in DGV_invoice.Rows)
                {
                    if (row.Cells[0].Value != null)
                    {
                        if ((row.Cells[1].Value.ToString().ToLower() == TB_LastName.Text.Trim().ToLower()) ||
                            (row.Cells[2].Value.ToString().ToLower() == TB_FirstName.Text.Trim().ToLower()) ||
                            (row.Cells[3].Value.ToString().ToLower() == TB_Patronymic.Text.Trim().ToLower()))
                        {
                            new_dgv.Rows.Add(row.Cells[0].Value, row.Cells[1].Value, row.Cells[2].Value, row.Cells[3].Value, row.Cells[4].Value);
                        }
                    }
                }

                DGV_invoice.Rows.Clear();
                Thread.Sleep(300);//тестовым путем выяснилось, что необходимо притормозить поток, иначе в RunTime ошибка отрисовки таблицы

                Copy(new_dgv);

                P_Loading.Hide();
                TB_search.Enabled = true;
            }, TaskCreationOptions.LongRunning);
        }
예제 #2
0
        /// <summary>
        /// Загружает данные из БД в таблицу
        /// </summary>
        private void LoadGrid()
        {
            Task.Factory.StartNew(() =>
            {
                P_Loading.Show();
                TB_search.Enabled    = false;
                BT_add.Enabled       = false;
                TSL_allSum.Text      = "Сумма всех счетов: ";
                DataGridView new_dgv = new DataGridView();

                foreach (DataGridViewColumn column in DGV_invoice.Columns)
                {
                    new_dgv.Columns.Add((DataGridViewColumn)column.Clone());
                }

                var tmp = (List <object[]>)Functions.AccountAction(new AccountActionParams()
                {
                    action = UserAction.show
                });

                double sum = 0;
                DGV_invoice.Rows.Clear();
                foreach (var t in tmp)
                {
                    new_dgv.Rows.Add(t[1], t[2], t[3], t[4], t[5]);
                    new_dgv.Rows[new_dgv.Rows.Count - 2].Tag = t[0];//для каждой строки сохраняем соответствующий ей id из БД

                    sum += Convert.ToDouble(t[5]);
                }

                Copy(new_dgv);

                TSL_allSum.Text = "Сумма всех счетов: " + sum.ToString() + " тыс.";
                P_Loading.Hide();
                TB_search.Enabled = true;
                BT_add.Enabled    = true;
            }, TaskCreationOptions.LongRunning);
        }