Нидерланды |
Опубликован: 09.09.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Российская международная академия туризма
Лекция 11:
Добавление-удаление записей
Шаг 15. Создаем процедуру фильтрации целевых расходов
Для кнопки "Фильтр цели" пишем:
private void button4_Click(object sender, System.EventArgs e) { // внимательно: в кавычки берется апостроф dataTable.DefaultView.RowFilter="Цель='"+this.textBox2.Text+"'"; dataGrid1.DataSource=dataTable; this.tabControl1.SelectedIndex=0; my_filt=this.textBox2.Text; my_chan="Цель"; cell_sum(); // считаем результат }
Шаг 16. Создаем процедуру фильтрации расходов по фирмам
Для кнопки "Фильтр фирмы" пишем:
private void button6_Click(object sender, System.EventArgs e) { dataTable.DefaultView.RowFilter="Фирма='"+this.textBox3.Text+"'"; dataGrid1.DataSource=dataTable; this.tabControl1.SelectedIndex=0; my_filt=this.textBox3.Text; my_chan="Фирма"; cell_sum(); }
Шаг 17. Создаем процедуру удаления фильтра
Для кнопки "Показать все" пишем:
private void button5_Click(object sender, System.EventArgs e) { DataView sortedView=new DataView(dataTable); // обратная сортировка sortedView.Sort="ID DESC"; dataGrid1.DataSource=sortedView; this.tabControl1.SelectedIndex=0; balance(); }
Шаг 18. Создаем процедуру запроса с группировкой данных
Для кнопки "Найти" закладки "База данных" пишем:
private void My_Query(){ // выборка целей платежей - создаем структуру таблицы DataSet1 dataSet1=new DataSet(); dataTable1=dataSet1.Tables.Add("Платежи"); // добавляем столбцы dataTable1.Columns.Add("Цель",System.Type.GetType("System.String")); dataTable1.Columns.Add("Сумма",System.Type.GetType("System.String")); // добавляем первую строку для шаблона int my_test=0; string my_sum; float my_summa=0; foreach (DataRow row in dataTable.Rows) { // перебираем все записи my_fuel=(row["Цель"].ToString()); my_test=0; DataRow[] rowCell=dataTable.Select("Цель='"+my_fuel+"'"); // вложенные циклы выборки записей по условию foreach (DataRow rowTable in rowCell) { my_summa=my_summa+float.Parse(rowTable["Сумма"].ToString()); } foreach (DataRow row1 in dataTable1.Rows){ my_service=(row1["Цель"].ToString()); if (my_fuel==my_service) my_test=1; } if (my_test==0){ my_sum=my_summa.ToString(); object[] a1={my_fuel,my_sum}; dataTable1.Rows.Add(a1); } my_summa=0; } //привязываем dataGrid1.TableStyles.Clear(); // стиль грид делаем программно DataGridTableStyle ts= new DataGridTableStyle(); ts.MappingName="Платежи"; DataGridTextBoxColumn cs=new DataGridTextBoxColumn();// первый столбец cs.Width=120; cs.MappingName="Цель"; cs.HeaderText="Выберите платеж"; cs.NullText=""; ts.GridColumnStyles.Add(cs); cs = new DataGridTextBoxColumn();// второй столбец cs.Width=70; cs.MappingName="Сумма"; cs.HeaderText="ИТОГО"; ts.GridColumnStyles.Add(cs); this.dataGrid1.TableStyles.Add(ts); DataView sortedView1=new DataView(dataTable1); sortedView1.Sort="Цель"; dataGrid1.DataSource=sortedView1; my_grid=1; }
Шаг 19. Создаем процедуру для кнопки "Найти"
private void button7_Click(object sender, System.EventArgs e) { if (this.dataGrid1.Visible==false) {// выводим сообщение с картинкой MessageBox.Show("Откройте или создайте файл данных!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Asterisk,MessageBoxDefaultButton.Button1 ); return;} My_Query(); }
Шаг 20. Создаем процедуру выборки данных из базы по условию
Для клика записи ДатаГрид пишем:
private void dataGrid1_Click(object sender, System.EventArgs e) { // номер "кликнутой" строки int N_row=dataGrid1.CurrentCell.RowNumber; // номер сторбца int N_col=dataGrid1.CurrentCell.ColumnNumber; if (my_grid==1) { my_fuel=dataGrid1[N_row,0].ToString(); DataView sortedView=new DataView(dataTable); sortedView.Sort="ID DESC"; sortedView.RowFilter="Цель='"+my_fuel+"'"; dataGrid1.TableStyles.Clear(); dataGrid1.TableStyles.Add(dataGridTableStyle1); dataGrid1.DataSource=sortedView; my_grid=0; return; } // вывод значения ячейки my_ID=dataGrid1[N_row,0].ToString()+"\n"+ dataGrid1[N_row,1].ToString()+"\n"+ dataGrid1[N_row,2].ToString()+"\n"+ dataGrid1[N_row,3].ToString()+"\n"+ dataGrid1[N_row,4].ToString(); textBox1.Text=dataGrid1[N_row,0].ToString(); textBox2.Text=dataGrid1[N_row,1].ToString(); textBox3.Text=dataGrid1[N_row,2].ToString(); textBox4.Text=dataGrid1[N_row,3].ToString(); textBox5.Text=dataGrid1[N_row,4].ToString(); string mes=N_col.ToString();; if (N_col==0) {mes="Сумма";} if (N_col==1) {mes="Цель";} if (N_col==2) {mes="Фирма";} if (N_col==3) {mes="Дата";} if (N_col==4) {mes="ID";} if (MessageBox.Show(my_ID+"\n Редактировать?",mes, MessageBoxButtons.YesNo, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2) = = DialogResult.Yes) this.tabControl1.SelectedIndex=1; }