Запросы
Задача темы: изучить методику и получить навыки в разработке методов выборки данных из таблиц
Разработка: Приложение "Запросы" для выборки данных из таблиц движения средств на банковских пластиковых карточках
Состав выполняемых функций:
- Файловые операции: открыть
- Алгоритмы: выборка данных по целям платежей и фирмам с группировкой
- Информационно-справочные: О программе
Наращивание функциональности не предусматривается.
Защита данных – запрет доступа пользователя к данным.
В качестве входных данных используются файлы с данными о движении средств на банковских карточках. Выходные данные программы – графическое отображение результатов в виде таблиц DataGrid для SmartDevice
Шаг 1. Разработка графического интерфейса
Предусматривается одна форма с TabControl из двух закладок "Доходы и расходы" с единственным элементом DataGrid и "Структура расходов" с DataGrid и двумя кнопками запуска запросов "По целям" и "По фирмам".
Из невидимых элементов – главное меню с опциями "Открыть", "Выход"; openFileDialog со свойством Filter = Файлы XML (*.xml)|*.xml – примерный дизайн на рис. 12.1 и 12.2.
Шаг 2. Добавляем библиотеки
using System; using System.Drawing; using System.Collections; using System.Windows.Forms; using System.Data; //добавляем using System.IO; using System.Xml;
Шаг 3. Добавляем переменные в public class Form1 : System.Windows.Forms.Form
string file_name="dataSet.xml"; // глобальный датасет DataSet dataSet; DataSet dataSetCell; //глобальный дататейбл DataTable dataTable; DataTable dataCell; DataTable dataFirma; DataRow newRow;
Шаг 4. В public Form1() вызываем функцию чтения данных file_read() ;
{
InitializeComponent();
file_read();
}Шаг 5. Создаем функцию чтения данных из XML-файла
private void file_read() {
FileStream fin;
try {
fin=new FileStream(file_name,FileMode.Open);
fin.Close();
}
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл \n"+file_name,"Ошибка");
return;}
// Считываем значения из файла
XmlTextReader xml_in=new XmlTextReader(file_name);
dataSet=new DataSet();
dataTable=dataSet.Tables.Add("CardVISA");
dataSetCell=new DataSet();
dataCell=dataSetCell.Tables.Add("CardCell");
dataFirma=dataSet.Tables.Add("CardFirma");
dataTable.Columns.Add("Сумма",System.Type.GetType("System.String"));
dataTable.Columns.Add("Цель",System.Type.GetType("System.String"));
dataTable.Columns.Add("Фирма",System.Type.GetType("System.String"));
dataTable.Columns.Add("Дата",System.Type.GetType("System.String"));
dataTable.Columns.Add("ID",System.Type.GetType("System.Int64"));
dataTable.Columns["Сумма"].ReadOnly=true;
dataTable.Columns["Цель"].ReadOnly=true;
dataTable.Columns["Фирма"].ReadOnly=true;
dataTable.Columns["Дата"].ReadOnly=true;
dataTable.Columns["ID"].ReadOnly=true;
dataSet.ReadXml(@xml_in);
xml_in.Close();
DataView sortedView=new DataView(dataTable);
sortedView.Sort="ID DESC";
dataGrid1.DataSource=sortedView;
// добавляем столбцы в dataCell
dataCell.Columns.Add("Процент",System.Type.GetType("System.String"));
dataCell.Columns.Add("Цель",System.Type.GetType("System.String"));
dataCell.Columns.Add("Сумма",System.Type.GetType("System.String"));
// добавляем столбцы в dataFirma
dataFirma.Columns.Add("Сумма",System.Type.GetType("System.String"));
dataFirma.Columns.Add("Фирма",System.Type.GetType("System.String"));
dataFirma.Columns.Add("Процент",System.Type.GetType("System.String"));
}

