Опубликован: 09.09.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Российская международная академия туризма
Лекция 11:

Добавление-удаление записей

< Лекция 10 || Лекция 11: 123 || Лекция 12 >

Шаг 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;
}
< Лекция 10 || Лекция 11: 123 || Лекция 12 >
jo jojo
jo jojo
Нидерланды
Ярославй Грива
Ярославй Грива
Россия, г. Санкт-Петербург