Задание 7. Разработать методы поиска данных – 1 час.

Функцию поиска данных в приложений необходимо выполнить на основе данных, имеющихся в базе данных варианта лабораторной работы. параметры поиска необходимо согласовать с преподавателем.

Общий подход к поиску реализации поиска данных, получаемых из базы данных, рассмотрим на примере поиска сотрудника по фамилии и должности. Для реализации функций поиска добавьте на страницу приложения элементы контроля в соответствии с рис. 6.18.


увеличить изображение
Рис. 6.18.Дизайн страницы с элементами контроля для поиска

XAML-описание элементов контроля, поддерживающих поиск имеет следующий вид.

<TextBlock Name="TextBlockSurname" Text="Фамилия" /><TextBlock Name="TextBlockTitle" Text="Должность" /><TextBox Name="TextBoxSurname" TextChanged="TextBoxSurname_TextChanged"/><ComboBox Name="ComboBoxTitleItemsSource="{Binding Source={StaticResource listTitle}}"DisplayMemberPath="Title1"SelectionChanged="ComboBoxTitle_SelectionChanged"/><Button Name="ButtonFindSurname" ToolTip="Поиск по фамилии"IsEnabled="False" Click="ButtonFindSurname_Click"><Image Source="Images/Search.jpg"/></Button><Button Name="ButtonFindTitle" ToolTip="Поиск по должности"IsEnabled="False" Click="ButtonFindTitle_Click"><Image Source="Images/Search.jpg" /></Button>

Элементы контроля размещаем в рамке BorderFind. В рамке располагаем сетку gridFind с тремя колонками и строками. Первая строка в объединенных колонках содержит текстовый блок find с текстом "Поиск". Во второй и третьей строках первой колонки размещены текстовые блоки TextBlockSurname и TextBlockTitle соответственно. Во второй колонке размещаются элементы контроля для ввода информации: текстовый блок TextBoxSurname (вторая строка) и выпадающий список ComboBoxTitle (третья строка). В третьей колонке размещаются кнопки: для поиска по фамилии ButtonFindSurname (вторая строка) и для поиска по должности ButtonFindTitle (третья строка).

При загрузке страницы PageEmployee рамка BorderFind невидима, так как свойству Visibility задано значение "Hidden". При активизации команды Find из меню или панели инструментов запускается обработчик FindCommandBinding_Executed, который делает рамку ButtonFindTitle видимой.

private void FindCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) { BorderFind.Visibility = System.Windows.Visibility.Visible; }

Если в текстовом блоке TextBoxSurname не введена информация или в выпадающем списке ComboBoxTitle не сделан выбор, то кнопки ButtonFindSurname и ButtonFindTitle будут недоступны.

При вводе информации в текстовый блок TextBoxSurname запускается обработчик TextBoxSurname_TextChanged, который делает доступной кнопку ButtonFindSurname.

private void TextBoxSurname_TextChanged(object sender, TextChangedEventArgs e){ ButtonFindSurname.IsEnabled = true; ButtonFindTitle.IsEnabled = false; ComboBoxTitle.SelectedIndex = -1;}

При нажатии кнопки ButtonFindSurname запускается обработчик ButtonFindSurname_Click.

private void ButtonFindSurname_Click(object sender, RoutedEventArgs e){ string surname = TextBoxSurname.Text; DataEntitiesEmployee = new TitlePresonalEntities(); ListEmployee.Clear(); ObjectQuery<Employee> employees = DataEntitiesEmployee.Employees; var queryEmployee = from employee in employees where employee.Surname == surname select employee; foreach (Employee emp in queryEmployee) { ListEmployee.Add(emp); } if (ListEmployee.Count > 0) { DataGridEmployee.ItemsSource = ListEmployee; ButtonFindSurname.IsEnabled = true; ButtonFindTitle.IsEnabled = false; } else MessageBox.Show("Сотрудник с фамилией \n"+surname+"\n не найдан", "Предупреждение", MessageBoxButton.OK, MessageBoxImage.Warning);}

В данном обработчике события Click выполняется LINQ запрос на получение данных из базы TitlePersonal в соответствии с заданной фамилией сотрудника.

var queryEmployee = from employee in employees where employee.Surname == surname select employee;

При выполнении запроса по фамилии страница PageEmployee имеет вид, приведенный на рис. 6.19


увеличить изображение
Рис. 6.19.Поиск по фамилии

Найденные данные по сотруднику можно редактировать и удалять.

Если поиск в базе данных не привел к нахождению информации, то выдается информационное сообщение ( рис. 6.20).


увеличить изображение
Рис. 6.20.Неудачный поиск по фамилии

Для поиска информации из базы данных по должности сотрудников необходимо сделать выбор из выпадающего списка ComboBoxTitle. В результате выбора срабатывает обработчик ComboBoxTitle_SelectionChanged, который делает доступной кнопку ButtonFindTitle.

private void ComboBoxTitle_SelectionChanged(object sender, SelectionChangedEventArgs e){ ButtonFindTitle.IsEnabled = true; ButtonFindSurname.IsEnabled = false; TextBoxSurname.Text = "";}

При нажатии на кнопку ButtonFindTitle срабатывает обработчик ButtonFindTitle_Click.

private void ButtonFindTitle_Click(object sender, RoutedEventArgs e){ DataEntitiesEmployee = new TitlePresonalEntities(); ListEmployee.Clear(); Title title = ComboBoxTitle.SelectedItem as Title; ObjectQuery<Employee> employees = DataEntitiesEmployee.Employees; var queryEmployee = from employee in employees where employee.TitleID == title.ID orderby employee.Surname select employee; foreach (Employee emp in queryEmployee) { ListEmployee.Add(emp); } DataGridEmployee.ItemsSource = ListEmployee;}

При запуске данного обработчика выполняется LINQ-запрос к базе данных TitlePersonal для выборки данных по сотрудникам, имеющим заданную должность.

Для обновления выводимого списка сотрудников в приложение добавлена функция обновления, которая реализуется командой Refresh. Данная команда добавлена в коллекцию команд страницы PageEmployee.

<Page.CommandBindings>.... <CommandBinding Command="Refresh" Executed="RefreshCommandBinding_Executed" />... </Page.CommandBindings>

Вызов команды добавлен в меню

<MenuItem Header="Обновить" Command="Refresh"/>

и панель инструментов

<Button Name="Refresh" Margin="5,2,5,2" Command="Refresh" ToolTip="обновить данные по сотрудникам"> <Image Source="Images/Refresh.jpg" ></Image></Button>

Основное назначение обработчика команды RefreshCommandBinding_Executed – обновление списка ListEmployee.

private void RefreshCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e){ RewriteEmployee(); DataGridEmployee.IsReadOnly = false; isDirty = false; SetUnvisibilityFind();}

Команда "Обновить" обычно используется после поиска данных или ввода данных по новому сотруднику.

Варианты заданий

На рис. l.1 приведена структура базы данных информационной системы внутреннего учета инвестиционной компании. Задачей лабораторной работы является разработка одной из подсистем для данной информационной системы.


Рис. l.1.Структура базы данных системы внутреннего учета инвестиционной компании

Вариант 1. Информационная подсистема ведения счетов клиентов

Назначение подсистемы поддержание в актуальном состоянии инвестиционных счетов клиентов.


увеличить изображение
Рис. l.2.Структура базы данных подсистемы ведения счетов клиентов

Назначение атрибутов таблицы Счет – Account:

  • ID – суррогатный ключ;
  • TypeID – внешний ключ для связи с таблицей Type;
  • BankID – внешний ключ для связи с таблицей Bank;
  • AgreementID – внешний ключ для связи с таблицей Agreement;
  • Account – номер инвестиционного счета.

Назначение атрибутов таблицы Тип счета – TypeAccount:

  • ID – суррогатный ключ;
  • TypeAccount – тип счета.

Назначение атрибутов таблицы Банк – Bank:

  • ID – суррогатный ключ;
  • NameFull – полное наименование банка;
  • NameShort – краткое наименование банка;
  • Inn – ИНН банка;
  • Bik – БИК банка;
  • CorAccount – номер корсчета;
  • Account – номер счета;
  • City – город.

Назначение атрибутов таблицы Договор –Agreement:

  • ID – суррогатный ключ;
  • PersonID – внешний ключ для связи с таблицей Person;
  • TypeID – внешний ключ для связи с таблицей Type;
  • StatusID – внешний ключ для связи с таблицей Status;
  • Number – номер договора;
  • DataOpen- - дата заключения договора;
  • DataClouse – дата закрытия договора;
  • Note – пояснения.

Вариант 2. Информационная подсистема ведения адресов клиентов

Назначение подсистемы поддержание в актуальном состоянии адресов клиентов.


увеличить изображение
Рис. l.3.Структура базы данных подсистемы ведения адресов клиентов

Назначение атрибутов таблицы Адрес – Address:

  • ID – суррогатный ключ;
  • Index Address – адресный индекс;
  • PersonID – внешний ключ для связи с таблицей Person;
  • CountryID – внешний ключ для связи с таблицей Country;
  • RegionID – внешний ключ для связи с таблицей Region;
  • CityID – внешний ключ для связи с таблицей City;
  • Street – наименование улицы;
  • Bulding – номер строения, дома;
  • Office – номер офиса.

Назначение атрибутов таблицы Город –City:

  • ID – суррогатный ключ;
  • RegionID – внешний ключ для связи с таблицей Region;
  • CountryID – внешний ключ для связи с таблицей Country;
  • City – город.

Назначение атрибутов таблицы Регион –Region:

  • ID – суррогатный ключ;
  • CountryID – внешний ключ для связи с таблицей Country;
  • Region – регион.

Назначение атрибутов таблицы Страна –Country:

  • ID – суррогатный ключ;
  • CountryFull – полное наименование страны;
  • CountryShort – краткое наименование страны.

Вариант 3. Информационная подсистема ведения договоров клиентов

Назначение подсистемы поддержание в актуальном состоянии договоров клиентов.


увеличить изображение
Рис. l.4.Структура базы данных подсистемы ведения договоров клиентов

Назначение атрибутов таблицы Договор –Agreement:

  • ID – суррогатный ключ;
  • PersonID – внешний ключ для связи с таблицей Person;
  • TypeID – внешний ключ для связи с таблицей Type;
  • StatusID – внешний ключ для связи с таблицей Status;
  • Number – номер договора;
  • DataOpen- - дата заключения договора;
  • DataClouse – дата закрытия договора;
  • Note – пояснения.

Назначение атрибутов таблицы Статус договор –StatusAggrement:

  • ID – суррогатный ключ;
  • Status – статус договора.

Назначение атрибутов таблицы Клиент –Person:

  • ID – суррогатный ключ;
  • OrgLicenseID – внешний ключ для связи с таблицей OrgLicense;
  • VerietyID – внешний ключ для связи с таблицей Veriety;
  • StatusID – внешний ключ для связи с таблицей Status;
  • Inn – ИНН клиента;
  • Type – тип клиента;
  • Shifer – шифр клиента;
  • Data – дата регистрации клиента.

Вариант 4. Информационная подсистема ведения клиентов – физических лиц

Назначение подсистемы поддержание в актуальном состоянии информации по клиентам – физическим лицам.


увеличить изображение
Рис. l.5.Структура базы данных подсистемы ведения клиентов – физических лиц

Назначение атрибутов таблицы Клиент –Person:

  • ID – суррогатный ключ;
  • OrgLicenseID – внешний ключ для связи с таблицей OrgLicense;
  • VerietyID – внешний ключ для связи с таблицей Veriety;
  • StatusID – внешний ключ для связи с таблицей Status;
  • Inn – ИНН клиента;
  • Type – тип клиента;
  • Shifer – шифр клиента;
  • Data – дата регистрации клиента.

Назначение атрибутов таблицы Физическое лицо –Citizen:

  • ID – суррогатный ключ;
  • DocumentID – внешний ключ для связи с таблицей Document;
  • SurName – фамилия клиента;
  • Name – имя клиента;
  • Patronic – отчество клиента;
  • Number – номер документа, удостоверяющего личность;
  • Seriy – серия документа, удостоверяющего личность;
  • Organ – орган, выдавший документ, удостоверяющий личность;
  • Data – дата выдачи документа, удостоверяющий личность.

Назначение атрибутов таблицы Документ – Document:

  • ID – суррогатный ключ;
  • Document – наименование документа, удостоверяющего личность.

Вариант 5. Информационная подсистема ведения клиентов – юридических лиц

Назначение подсистемы поддержание в актуальном состоянии информации по клиентам – юридическим лицам.


увеличить изображение
Рис. l.6.Структура базы данных подсистемы ведения клиентов – юридических лиц

Назначение атрибутов таблицы Клиент –Person:

  • ID – суррогатный ключ;
  • OrgLicenseID – внешний ключ для связи с таблицей OrgLicense;
  • VerietyID – внешний ключ для связи с таблицей Veriety;
  • StatusID – внешний ключ для связи с таблицей Status;
  • Inn – ИНН клиента;
  • Type – тип клиента;
  • Shifer – шифр клиента;
  • Data – дата регистрации клиента.

Назначение атрибутов таблицы Физическое лицо –Company:

  • ID – суррогатный ключ;
  • OgrRegistrationID – внешний ключ для связи с таблицей OgrRegistration;
  • OrgLegFormID – внешний ключ для связи с таблицей OrgLegForm;
  • OrgLecensesID – внешний ключ для связи с таблицей OrgLecenses;
  • NameFull – полное наименование организации;
  • NameShort – краткое наименование организации;
  • Number – номер регистрации юридического лица;
  • Data – дата регистрации юридического лица;
  • WwwServer – WWW сервер организации;
  • Capital – уставный капитал организации.

Назначение атрибутов таблицы Организационно-правовая форма –OrgLegForm:

  • ID – суррогатный ключ;
  • OrgLegForm – организационно-правовая форма организации.

Назначение атрибутов таблицы Орган лицензирования – OrgLecenses

  • ID – суррогатный ключ;
  • NameFull – полное наименование органа лицензирования;
  • NameShort – краткое наименование органа лицензирования;

Назначение атрибутов таблицы Орган регистрации – OrgRegistration

  • ID – суррогатный ключ;
  • NameFull – полное наименование органа регистрации;
  • NameShort – краткое наименование органа регистрации;

Вариант 6. Информационная подсистема учета сделок с ценными бумагами

Назначение подсистемы поддержание в актуальном состоянии информации по сделкам с ценными бумагами клиентов.


увеличить изображение
Рис. l.7.Структура базы данных подсистемы учета сделок с ценными бумагами

Назначение атрибутов таблицы Сделка – Deal:

  • ID – суррогатный ключ;
  • AgreementID – внешний ключ для связи с таблицей Agreement;
  • DealTypeID – внешний ключ для связи с таблицей DealType;
  • DealKindID – внешний ключ для связи с таблицей DealKind;
  • DealPlaceID – внешний ключ для связи с таблицей DealPlace;
  • CalculationID – внешний ключ для связи с таблицей Currency;
  • PaymentID – внешний ключ для связи с таблицей Currency;
  • EmployeeID – внешний ключ для связи с таблицей Employee;
  • TikerID – внешний ключ для связи с таблицей Tiker;
  • OrderID – внешний ключ для связи с таблицей Order;
  • Contractor – контрагент по сделке;
  • Number – номер сделки;
  • DealDate – дата и время заключения сделки;
  • Quantity – количество ценных бумаг по сделке;
  • Price – цена по сделке;
  • TotalCost – общая сумма сделки;
  • Trader – код трейдера;
  • CommissionExchange – комиссия торговой площадки;
  • Note – примечание.

Назначение атрибутов таблицы Вид сделки –DealVerity:

  • ID – суррогатный ключ;
  • DealVerity – вид сделки.

Назначение атрибутов таблицы Тип сделки –DealType:

  • ID – суррогатный ключ;
  • DealType – тип сделки.

Назначение атрибутов таблицы Вид взаиморасчетов по сделке –DealKind:

  • ID – суррогатный ключ;
  • DealKindFull – полное наименование вида взаиморасчетов по сделке;
  • DealKindShort – краткое наименование вида взаиморасчетов по сделке.

Назначение атрибутов таблицы Место проведения сделки –DealPlace:

  • ID – суррогатный ключ;
  • DealPlaceFull – полное наименование места проведения сделки;
  • DealPlaceShort – краткое наименование места проведения сделки.

Назначение атрибутов таблицы Валюта – Currency:

  • ID – суррогатный ключ;
  • CurrencyFull – полное наименование валюты;
  • CurrencyShort – краткое наименование валюты.

Вариант 7. Информационная подсистема учета ценных бумаг

Назначение подсистемы поддержание в актуальном состоянии информации по торгуемым ценным бумагам.


увеличить изображение
Рис. l.8.Структура базы данных подсистемы учета ценных бумаг

Назначение атрибутов таблицы Финансовый инструмент –FinAsset:

  • ID – суррогатный ключ;
  • TikerID – внешний ключ для связи с таблицей Tiker;
  • RegistrationID – внешний ключ для связи с таблицей Registration;
  • EmitentID – внешний ключ для связи с таблицей Emitent;
  • TypeFinAsset - тип ценной бумаги.

Назначение атрибутов таблицы Тикер ценной бумаги–Tiker:

  • ID – суррогатный ключ;
  • DealPlaceID – внешний ключ для связи с таблицей DealPlace;
  • TikerI – тикер ценной бумаги.

Назначение атрибутов таблицы Акция–Security:

  • ID – суррогатный ключ;
  • TikerID – внешний ключ для связи с таблицей Tiker;
  • NumberRegistration – Регистрационный номер ЦБ;
  • DateRegistration – дата регистрации ЦБ;
  • Category – категория ЦБ;
  • FormIssue – форма выпуска;
  • Number – порядковый номер выпуска;
  • Principal – номинал;
  • Amount – количество ЦБ в выпуске;
  • DateAccommodation – дата размещения;
  • DateReport – дата регистрации отчета о размещении;
  • Note – примечания.

Назначение атрибутов таблицы Облигация – Bond:

  • ID – суррогатный ключ;
  • TikerID – внешний ключ для связи с таблицей Tiker;
  • NumberRegistration – Регистрационный номер ЦБ;
  • DateRegistration – дата регистрации ЦБ;
  • Category – категория ЦБ;
  • FormIssue – форма выпуска;
  • Number – порядковый номер выпуска;
  • Principal – номинал;
  • Amount – количество ЦБ в выпуске;
  • DateAccommodation – дата размещения;
  • DateReport – дата регистрации отчета о размещении;
  • DataRepayment – дата погашения;
  • CouponsAmount – количество купонов;
  • CouponsRate – размер купона;
  • Note – примечания.

Вариант 8. Информационная подсистема поручений по сделкам с ценными бумагами

Назначение подсистемы поддержание в актуальном состоянии информации по поручениям клиентов.


Рис. l.9.Структура базы данных подсистемы поручений по сделкам с ценными бумагами

Назначение атрибутов таблицы Поручение –Order:

  • ID – суррогатный ключ;
  • AgreementID
  • TikerID – внешний ключ для связи с таблицей Tiker;
  • OrderTypeID – внешний ключ для связи с таблицей OrderType;
  • OrderVerietyID – внешний ключ для связи с таблицей OrderVeriety;
  • EmployeeID – внешний ключ для связи с таблицей Employee;
  • CurrencyID – внешний ключ для связи с таблицей CurrencyID;
  • Type – тип поручения;
  • Number – последовательный номер приказа;
  • Data – дата и время получения заявки;
  • NumberReg – регистрационный номер в системе внутреннего учета;
  • Duration – срок действия приказа;
  • InputDataExchange – время ввода заявки в торговую систему;
  • OutOrderDate – время снятия заявки.

Назначение атрибутов таблицы Тип сделки – OrderDealType:

  • ID – суррогатный ключ;
  • Type – тип сделки по приказу.

Назначение атрибутов таблицы Вид сделки – OrderVeriety:

  • ID – суррогатный ключ;
  • Veriety – вид сделки по приказу.

Назначение атрибутов таблицы Валюта – Currency:

  • ID – суррогатный ключ;
  • CurrencyFull – полное наименование валюты;
  • CurrencyShort – краткое наименование валюты.

Вариант 9. Информационная подсистема учета клиентов компании

Назначение подсистемы поддержание в актуальном состоянии информации по клиентам компании.


Рис. l.10.Структура базы данных подсистемы учета клиентов компании

Назначение атрибутов таблицы Клиент –Person:

  • ID – суррогатный ключ;
  • OrgLicenseID – внешний ключ для связи с таблицей OrgLicense;
  • VerietyID – внешний ключ для связи с таблицей Veriety;
  • StatusID – внешний ключ для связи с таблицей Status;
  • Inn – ИНН клиента;
  • Type – тип клиента;
  • Shifer – шифр клиента;
  • Data – дата регистрации клиента.

Назначение атрибутов таблицы Адрес электронной почты –Email:

  • ID – суррогатный ключ;
  • PersonID – внешний ключ для связи с таблицей Person;
  • Email – адрес электронной почты.

Назначение атрибутов таблицы Телефон – Telephone:

  • ID – суррогатный ключ;
  • PersonID – внешний ключ для связи с таблицей Person;
  • Telephone – телефон клиента.

Назначение атрибутов таблицы Статус – Status:

  • ID – суррогатный ключ;
  • Status – статус клиента.

Назначение атрибутов таблицы Вид клиента –Veriety:

  • ID – суррогатный ключ;
  • Veriety –вид клиента.

Вариант 10. Информационная подсистема учета операций с ценными бумагами

Назначение подсистемы поддержание в актуальном состоянии информации по операциям с ценными бумагами клиентов компании.

Рис. l.11.Структура базы данных подсистемы учета операций с ценными бумагами

Назначение атрибутов таблицы Операция – Operation:

  • ID – суррогатный ключ;
  • DealID – внешний ключ для связи с таблицей Deal;
  • SubAccountID – внешний ключ для связи с таблицей SubAccount;
  • Number – номер операции;
  • OperationDate – дата проведения операции;
  • OperationType – тип операции;
  • OperationSum – приход/расход по операции;
  • SaldoInput – сальдо начальное;
  • SaldoOutput – сальдо конечное.

Назначение атрибутов таблицы Субсчет –SubAccount:

  • ID – суррогатный ключ;
  • AccountPlanID – внешний ключ для связи с таблицей AccountPlan;
  • Name – наименование субсчета;
  • Number – номер субсчета.

Назначение атрибутов таблицы План счетов –AccountPlan:

  • ID – суррогатный ключ;
  • AccountName – наименование счета внутреннего учета;
  • AccountType – тип счета;
  • AccountVerify – вид счета;
  • Number – номер операции;

Назначение атрибутов таблицы Сделка – Deal:

  • ID – суррогатный ключ;
  • AgreementID – внешний ключ для связи с таблицей Agreement;
  • DealTypeID – внешний ключ для связи с таблицей DealType;
  • DealKindID – внешний ключ для связи с таблицей DealKind;
  • DealPlaceID – внешний ключ для связи с таблицей DealPlace;
  • CalculationID – внешний ключ для связи с таблицей Currency;
  • PaymentID – внешний ключ для связи с таблицей Currency;
  • EmployeeID – внешний ключ для связи с таблицей Employee;
  • TikerID – внешний ключ для связи с таблицей Tiker;
  • OrderID – внешний ключ для связи с таблицей Order;
  • Contractor – контрагент по сделке;
  • Number – номер сделки;
  • DealDate – дата и время заключения сделки;
  • Quantity – количество ценных бумаг по сделке;
  • Price – цена по сделке;
  • TotalCost – общая сумма сделки;
  • Trader – код трейдера;
  • CommissionExchange – комиссия торговой площадки;
  • Note – примечание.

 








Дата добавления: 2015-04-15; просмотров: 1867;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.034 сек.