Запросы
Задача темы: изучить методику и получить навыки в разработке методов выборки данных из таблиц
Разработка: Приложение "Запросы" для выборки данных из таблиц движения средств на банковских пластиковых карточках
Состав выполняемых функций:
- Файловые операции: открыть
- Алгоритмы: выборка данных по целям платежей и фирмам с группировкой
- Информационно-справочные: О программе
Наращивание функциональности не предусматривается.
Защита данных – запрет доступа пользователя к данным.
В качестве входных данных используются файлы с данными о движении средств на банковских карточках. Выходные данные программы – графическое отображение результатов в виде таблиц 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")); }