Российская международная академия туризма
Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 811 / 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(); }