Российская международная академия туризма
Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 813 / 38 | Оценка: 4.33 / 4.33 | Длительность: 13:07:00
Темы: Базы данных, Программирование
Специальности: Администратор баз данных
Лекция 13:
Запросы
Шаг 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();
}