Российская международная академия туризма
Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 807 / 36 | Оценка: 4.33 / 4.33 | Длительность: 13:07:00
Лекция 13:

Запросы

< Лекция 12 || Лекция 13: 12 || Лекция 14 >

Шаг 6. Создаем диалог открытия файла

Для опции главного меню "Открыть" пишем:

private void menuItem2_Click(object sender, System.EventArgs e) {
if (openFileDialog1.ShowDialog()==DialogResult.OK) {
file_name=openFileDialog1.FileName;
file_read();
	}
}

Шаг 7. Создаем запрос-выборку данных "По фирмам"

Для кнопки "По фирмам" пишем:

// обновляем запрос по фирмам
private void button2_Click_1(object sender, System.EventArgs e) {
// считывание строк из dataTable и добавление в dataCell
string my_cell;
foreach (DataRow row in dataTable.Rows) {
newRow=dataFirma.NewRow();
my_cell=(row["Фирма"].ToString());
newRow["Фирма"]=my_cell; 
// ищем строку - создаем массив строк 
DataRow[] rowCell=dataFirma.Select("Фирма='"+my_cell+"'");
//Если длина (не size, а Length!) массива 0
if (rowCell.Length==0) {
this.dataFirma.Rows.Add(newRow);
		}
	}
// А теперь считаем суммы
float  my_summa=0;
foreach (DataRow row in dataFirma.Rows) {
my_cell=(row["Фирма"].ToString());
DataRow[] rowCell=dataTable.Select("Фирма='"+my_cell+"'");
foreach (DataRow rowTable in rowCell) {
my_summa=my_summa+float.Parse(rowTable["Сумма"].ToString());
		}
if (my_summa>=0) {
row["Сумма"]=my_summa.ToString();
}
else {row["Сумма"]="0";
		}
my_summa=0;
	}
// А теперь считаем итого
foreach (DataRow row in dataFirma.Rows) {
my_summa=my_summa+float.Parse(row["Сумма"].ToString());
	}
float my_total=my_summa;
// заполняем структуру
double my_procent;
string my_format;
foreach (DataRow row in dataFirma.Rows) {
my_procent=double.Parse(row["Сумма"].ToString())*100/my_total;
// добавляем 0, если меньше 10
if (my_procent>=10) {
my_format=my_procent.ToString();
}
else {my_format="0"+my_procent.ToString();
		}
// обрезаем строку до 5 символов
if (my_format.Length>=5) {
row["Процент"]=(my_format.Substring(0,5));
}
else {row["Процент"]=my_format;
		}
	}
// А теперь считаем 100 %
my_summa=0;
foreach (DataRow row in dataFirma.Rows) {
my_summa=my_summa+float.Parse(row["процент"].ToString());
		}
// сортируем по цели
DataView sortedCell=new DataView(dataFirma);
sortedCell.Sort="Процент DESC";
// фильтруем пустые строки
sortedCell.RowFilter="Сумма<>'0'";
dataGrid2.DataSource=sortedCell;		
}

Шаг 8. Создаем запрос-выборку "По целям"

Для кнопки "По целям пишем":

private void button1_Click(object sender, System.EventArgs e) {
// считывание строк из dataTable и добавление в dataCell
string my_cell;
foreach (DataRow row in dataTable.Rows) {
newRow=dataCell.NewRow();
my_cell=(row["Цель"].ToString());
newRow["Цель"]=my_cell; 
// ищем строку - создаем массив строк 
DataRow[] rowCell=dataCell.Select("Цель='"+my_cell+"'");
//Если длина (не size, а Length!) массива 0
if (rowCell.Length==0) {
this.dataCell.Rows.Add(newRow);
		}
	}
// А теперь считаем суммы
float  my_summa=0;
foreach (DataRow row in dataCell.Rows) {
my_cell=(row["Цель"].ToString());
DataRow[] rowCell=dataTable.Select("Цель='"+my_cell+"'");
foreach (DataRow rowTable in rowCell) {
my_summa=my_summa+float.Parse(rowTable["Сумма"].ToString());
		}
if (my_summa>=0) {
row["Сумма"]=my_summa.ToString();
}
else {row["Сумма"]="0";
		}
my_summa=0;
	}
// А теперь считаем итого
foreach (DataRow row in dataCell.Rows) {
my_summa=my_summa+float.Parse(row["Сумма"].ToString());
	}
float my_total=my_summa;
// заполняем структуру
double my_procent;
string my_format;
foreach (DataRow row in dataCell.Rows) {
my_procent=double.Parse(row["Сумма"].ToString())*100/my_total;
// добавляем 0, если меньше 10
if (my_procent>=10) {
my_format=my_procent.ToString();
}
else {my_format="0"+my_procent.ToString();
		}
// обрезаем строку до 5 символов
if (my_format.Length>=5) {
row["Процент"]=(my_format.Substring(0,5));
}
else {row["Процент"]=my_format;
		}
	}
// А теперь считаем 100 %
my_summa=0;
foreach (DataRow row in dataCell.Rows) {
my_summa=my_summa+float.Parse(row["процент"].ToString());
		}
// сортируем по цели
DataView sortedCell=new DataView(dataCell);
sortedCell.Sort="Процент DESC";
// фильтруем пустые строки
sortedCell.RowFilter="Сумма<>'0'";
dataGrid2.DataSource=sortedCell;
}

Шаг 9. Создаем процедуру "О программе"

Для опции главного меню "О программе" пишем:

private void menuItem5_Click(object sender, System.EventArgs e) {
MessageBox.Show("Программа запросов с группировкой данных\n"+
"по целям платежей и фирмам-поставщикам товаров и услуг\n"+
	"(C)Родигин Л.А., март 2006,\n"+
	"Платформа C#.NET MS VisualStudio 2003","О программе");
}

Шаг 10. Выход из приложения

Для опции главного меню "Выход" пишем:

private void menuItem4_Click(object sender, System.EventArgs e) {
Application.Exit();
}
< Лекция 12 || Лекция 13: 12 || Лекция 14 >