Биллинг клиентов сети передачи данных

Совершенствование программы для учета биллинга приложения. Создание системы для разграничения прав пользователей в приложении. Функциональное моделирование и модели представления системы. Результаты тестирования системы и оценка выполнения задач.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 10.12.2014
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНСКИЙ ИНСТИТУТ УПРАВЛЕНИЯ

КУРСОВОЙ ПРОЕКТ

по дисциплине:

«Объектно Ориентированное Программирование»

на тему: «Биллинг клиентов сети передачи данных»

Минск 2011

Оглавление

Введение

1. Описание предметной области

1.1 Функциональное моделирование

1.2 А-0

1.3 А0, Декомпозиция

1.4 А1, Декомпозиция

1.5 А2, Декомпозиция

1.6 А4.1, Декомпозиция

2. Постановка задачи

3. Модели представления системы и их описание

3.1 Диаграмма вариантов использования

3.2 Диаграмма классов

3.3 Диаграмма компонентов

3.4 Диаграмма развёртывания

3.5 Диаграмма последовательности

3.6 Диаграмма состояний

4. Информационное моделирование

5. Описание руководства пользователя

5.1 Установка и настройка системы

5.2 Приложение

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

Заключение

Список литературных источников

Приложение А Листинг программного кода

Приложение Б Листинг SQL скрипта

Введение

биллинг приложение программа модель

Целью данного проекта является совершненствование программы для учёта билинга приложения. Первая версия приложения обеспечивала учёт приложений пользователей и номеров телефонов на которые реагируют приложения. Теперь стоит задача разширить функционал приложения. К основным нововедениям будет относится создание системы для разграничения прав пользователей в приложении. А так же будет увеличен общий объём информации хранимый о пользователях и приложениях.

Разграничение прав будет достигаться при помощи ролей. Роли полльзователей будут храниться в базе данных в отдельной таблице. Интерфейс приложения будет доработан и упрощён за счёт компонентов DevExpress которые позволяют увеличить удобство использования приложения.

В пояснительной записке так же будет рассмотрен процесс моделирования приложения. Все диаграммы будут нарисованы при помощи нотации UML 2.0.

1. Описание предметной области

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

Биллинговая система также обеспечивает регулирование доступа пользователей к телематическим услугам, кроме того, система биллинга позволяет протоколирование, накопление и анализ данных об использовании абонентами различного рода телекоммуникационных ресурсов (традиционной телефонии, основных сервисов Интернета (dialup, выделенные линии, e-mail, web-hosting, VoIP и т.д.), кабельных сетей и др.).

Биллинговая система позволяет:

· заключать и сопровождать договоры с Абонентом на поставку услуг;

формировать набор потребляемых услуг;

· вести баланс приходно-расходных статей на лицевом счете Абонента;

· обеспечивать аутентификацию и управлять доступом к услугам на основе анализа лицевого счета Абонента;

· при необходимости рассылать Абонентам сообщения по e-mail, факсу, SMS и т.д.;

· управлять структурой и схемой распределения услуг между их поставщиками;

· получать отчетные справки и документы по биллингу;

· получать различного рода статистические материалы по результатам работы биллинговой системы; управлять правами доступа и полномочиями пользователей биллинговой системы;

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

Биллинговая система может управляться через Web-интерфейсы оператора, администратора и абонента (у последнего имеется доступ только на сервер статистики и регистрации), обеспечивающие возможность выполнения большинства задач с удаленного терминала.

Биллинговая система поддерживает распределенную схему авторизации и различные схемы роуминга.

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

Система автоматизирует основную деятельность оператора связи, а именно перечисленные ниже функции. 1.Регистрация киентов и взаимодействия с клиентами, включая: оздание и ведение базы данных (БД) клиентов, ечать договоров и ведение БД документов, повещение клиентов и рекламных сообщений,регистрация и обработка рекламаций и предложений,оказание информационных услуг Клиентам через сеть Интернет.

2. Прием и обработка заказов: ввод в систему данных о заказе для зарегистрированного Клиента, заказываемых услугах, проверка позиций заказа и перенос услуг в БД экземпляров услуг, выставление счета за разовые услуги, печать договора.

3. Работа с услугами, включая: создание и ведение БД услуг,обработка заказанных услуг, включая распределение ресурсов, создание и ведение БД тарифных планов, ведение БД междугородных/международных телефонных кодов.

4. Работа с ресурсами, включая: создание и ведение БД ресурсов, распределение и планирование ресурсов, учет и контроль состояния ресурсов, расширенные функции по работе с ресурсами фиксированных телефонных сетей, подготовка и печать статистических отчетов.

5. Сбор информации об использовании ресурсов (данные по измерениям времени использования или трафика) и последующая тарификация.

6. Выставление (печать) счетов за услуги: формирование расчетных групп и расчетных периодов для групп клиентов, выставление (печать) счетов за заказанные услуги, выставление (печать) счетов за действующие услуги, контроль доставки счетов.

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

8. Обеспечение справочной информацией пользователей системы: «Элементы адреса», «Валюты», «Курсы валют», «Банки», «Телефонные коды междугородные», «Телефонные коды международные».

9. Администрирование системы, включая:

1. создание и ведение БД пользователей Системы;

2. ведение БД параметров Системы;

3. создание и ведение базы данных Интернет пользователей Системы;

4. создание и ведение календаря Системы;

5. контроль выполнения запросов сервером приложения;

6. ручной ввод информации об использовании ресурсов (телефонных звонках);

7. контроль ошибок Системы;

8. контроль доступа в Систему и к ее функциям.

9. Настройки модулей Системы.

За предоставляемые клиенту услуги, взимается плата. Размер этой платы может зависеть от типа услуги, клиента, даты, времени дня и многих других условий.

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

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

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

В системе может быть определено неограниченное количество тарифов и тарифных планов. Каждая услуга может иметь несколько разных тарифов. Каждому клиенту может быть назначен индивидуальный тарифный план. Кроме того, отдельный тарифный план может быть назначен на каждый отдельный экземпляр заказанной клиентом услуги, связанный с определенным используемым клиентом ресурсом.

Такой подход позволяет удовлетворить требования операторов, имеющих большое количество ресурсов разных типов (операторов телефонных фиксированных сетей, сетей сотовой радиотелефонной связи, сетей подвижной радиотелефонной и радиосвязи, сетей персонального радиовызова, сетей передачи данных, сетей доступа в Интернет, смешанных и других сетей).

С помощью одного и того же предоставляемого ресурса могут оказываться несколько видов услуг, которые могут тарифицироваться по-разному. Например, подключенный телефонный аппарат и соответствующая телефонная линия могут использоваться для предоставления местного, междугородного и международного соединения. В соответствии с этим, могут различаться и тарифы на предоставляемые услуги. Оплата же всех этих услуг производится по единому счету, что позволяет повысить эффективность работы системы.

В системе возможно создание практически неограниченного множества вариантов тарифов и скидок от самых простых до очень сложных.

Например, для местного соединения возможно установление следующих вариантов тарифов:

· простого тарифа (константа);

· тарифа, зависящего от продолжительности разговора (1-я мин. - Т1, 2-я мин. - Т2, …);

· тарифа, зависящего от типа дня (рабочий, выходной, праздничный);

· тарифа, зависящего от времени суток;

· тарифа, зависящего от любой комбинации трех предыдущих условий;

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

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

Возможна и более сложная оценка услуг. Например, для услуги доступа в Интернет, возможно, оценивать одновременно как время соединения, так и объем передаваемой информации.

1.1 Функциональное моделирование

Функциональное моделирование является важнейшим элементом концептуального анализа, который выполняется на начальном этапе проектирования любой автоматизированной информационной системы, в том числе и системы управления предприятием. Разработка и анализ функциональной модели деятельности предприятия позволяет достаточно глубоко погрузиться в предметную область, выявить бизнес-процессы, используемые на предприятии, определить информационные потоки, выявить узкие места в деятельности предприятия и т.д.

Для функционального анализа на концептуальном этапе удобно использовать простые, доступные для широкого понимания использования, хорошо проработанные методологии. Несмотря на солидный возраст стандартной методологии IDEF0, она по-прежнему весьма популярна среди аналитиков и широко используется, особенно на этапе концептуального анализа.

Детальный анализ функциональной IDEF0-модели является основой для изучения существующих на предприятии бизнес-процессов и для разработки новых бизнес-процессов, которые в дальнейшем будут являться основой для разработки алгоритмов системы управления. Для моделирования бизнес-процессов удобно воспользоваться специально разработанной для этих целей методологией IDEF3. Модель IDEF3 содержит 2 типа диаграмм: диаграммы процессов и диаграммы состояний объектов, которые позволяют выполнить анализ бизнес-процессов с разных сторон в рамках одной модели.

1.2 А-0

Файл diagram0

1.3 А0, Декомпозиция

Файл diagram1

1.4 А1, Декомпозиция

Файл diagram2

1.5 А2, Декомпозиция

Файл diagram3

1.6 А4.1, Декомпозиция

Файл diagram4

2. Постановка задачи

Необходимо доработать приложение Биллинг, что бы оно выполняло следующие задачи:

· Разграничение доступа пользователям

· Удобное управление ролями пользователей

· Управлене уровне доступа пользователя к ресурсам приложения

· Хранение расширенной информации о пользователе.

К необходимым требованиям относятся:

· Передача данных по сети TCP/IP

· Использование реляционной базы данных.

· Все таблицы базы данных должны быть приведены к третьей нормальной форме

3. Модели представления системы и их описание

3.1 Диаграмма вариантов использования

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

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

Всего можно выделить пять основных уровней ролей:

· Гость

· Владелец приложений

· Модератор

· Регистратор

· Администратор

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

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

Уровень модератора позволяет проверять информацию о пользователе, редактировать их, и при необходимости выставлять расширенные права. Владельцу блинга необходимо только контролировать модераторов.

Уровень регистратора даёт возможность вносить новые номера телефонов для приложений а так же управлять существующие.

Администратор включает в себя расширенные возможности всех предыдущих уровней.

3.2 Диаграмма классов

На диаграмме классов отображается взаимодействие между классами в системе. На данной диаграмме представленны как классы сущности: Пользователь, приложение, номер, роль, так и классы для их создания и редактирования(все остальные).

Рисунок 3.1 Диаграмма классов

3.3Диаграмма компонентов

В системе существует только два компонента это приложение и база данных, их взаимодействие осуществляется через стандартные сети и протокол TCP/IP

Рисунок 3.2 Диаграмма Компонентов

3.4 Диаграмма развёртывания

Диаграмма развёртывания отображает размещение компонентов системы. Система может работать как на одной машине так и разделена на несколько компьютеров. На диаграмме развёртывания отображается случай когда база данных находится на сервере, а приложения на локальных машинах клиентов. При этом каждый клиент имеет доступ в свою безопасную зону.

Рисунок 3.3 Диаграмма развёртывания

3.5 Диаграмма последовательности

Диаграмма последовательности предназначена для отображения определённой последовательности. На диаграмме 3.5 отображается последовательность действий пользователя при подключении к системе. Действия осуществляемые пользователем в приложении последовательными не являются по этому закончим рассмотрение последовательности на уровне подключения.

Рисунок 3.4 Диаграмма последовательности

3.6 Диаграмма состояний

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

Рисунок 3.5 Диаграмма состояний

4. Информационное моделирование

Базу данных можно разделить на 2 модели : это физическая модель и логическая модель.

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

Рисунок 4.1 Физическаямодель базы данных

При разработке приложения Биллинг 2.0 была использована за основу схема базы данных билинг однако существенно доработана. В частности была расширена таблица пользователей, в ней появились не только описательные поля но и поля для авторизации такие как логин и пароль. Таблица приложений так же была расширенна и модифицирована.

Основным нововедением в приложении Билинг 2.0 стало разграничение пользователей и доступ к различным элементам интерфейсам. Для создания данного функционала было введены две дополнительные таблицы: Роли для пользователей и Роли. Таблица роли описывает возможные комбинации прав доступа к элементам интерфейса, а таблица роли для пользователя служит связкой Многие-ко-Многим, так как Любой пользователь может иметь много ролей в приложении, а каждая роль много пользователей. Схема базы данных Биллинг 2.0 представленна на рисунке 4.2

Рисунок 4.2 База данных приложения билинг2.0

Логическая модель Билинг 2.0 так же претерпела изменения, в прежней версии приложения была дополнительная логическая таблица “DataTable1” которая объеденяла выборку по всем трём таблицам отображая данные в главном окне, однако со введением разграничений по пользователям, данная необходимость отпала. Каждый пользователь видит исключительно те приложения на которые у него есть доступ.

Рисунок 4.3 Логическая модель базы данных

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

Рисунок 4.4 Логическая модель Билинг 2.0

5. Описание руководства пользователя

5.1 Установка и настройка системы

Тестирование программы осуществлялось на персональном компьютере со следующими техническими средствам:

· процессор -Intel Core 2 duo E7300 (3,2 GHz);

· тип системы - 32-разрядная операционная система;

· установленная память - 2 GB ОЗУ;

· операционная система - Windows XP, Windows Vista, Windows 7

· Достук к базе данных MySQL с правами администратора.

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

Второй шаг мастера предлагает выбрать папку, куда будет установлено приложение. Мастер так же позволяет удалять приложения.

На третьем шаге мастер просит подтвердить начало установки

В процессе установки мастер показывает сколько уже установленно, для этого у него есть специальная строка состояния.

По оканчанию установки необходимо нажать кнопку завершить.

В результате установки в меню пуск появится папка Биллинг 2.0 в которой будут находится иконки для запуска приложения и его настройки.

Настройка

В настройке приложения необходимо указать параметры подключения к базе данных. В окне нстройки отображаются данные по умолчанию.

5.2 Приложение

Для входа в приложение необходимо подключится к программе. В независимости от того какие настройки выбраны в настройках приложения, подключаться необходимо. Данное подключение позволяет авторизироваться как пользователь с определённым набором ролей.

Сразу после установки на локальный компьютер, приложение сработает на данные Логин:admin, Пароль:admin. Для первого примера мы войдём как простой пользователь.

В данном приложении всё зависит от прав выданых тому или иному пользователю. Авторизировавшись как user1/user1 мы входим в приложение с правами владельца приложений и видим экран рисунок 5.9.

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

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

Как мы можем видеть на рисунке 5.10 администратор видет все вкладки и может с ними работать.

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

Вклада «Работа с номерами» предназначена для обработки и хранения коротких номеров для билинка.

Вкладка работа с доступом позволяет создать новые или отредактировать существуюшие роли.

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

Окно добавить пользователя вызывается как со вкладки пользователи так и со вкладки подкличение, предоставляя одинаковый функционал.

Окно права,вызывается из вкладки пользователей администратором, при нажатии кнопок « и » соответственно удаляются или добавляются права выбранному пользователю. Права совпадают с названием вкладок.

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

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

В процессе тестирования ошибок выявлено небыло, однако были найдены недочёты не влияющие на работоспособность программы. Наиболее значимый недочёт это ошибочно спроектированая таблица ролей.

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

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

Заключение

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

Список литературных источников

1. Microsoft Visual Studio 2008/ Л. Пауэрс, М. Снелл: Пер. с англ. СПб БХВ-Петербург, 2009.

2. Рихтер Дж. Программирование на платформе Microsoft.Net Framework 2.0 на языке С#. Мастер-класс. СПб.: Питер, 2007.

3. Раттц М. Джозеф С. LINQ: язык интегрированных запросов в С# 2008 для профессионалов. Пер. с англ. М.: OOO ”И. Д. Вильямс”, 2008.

4.Нортон Т., Райн Б. Основы разработки приложений на платформе Microsoft.Net Framework. СПб.: Питер, 2007.

Приложение А

Листинг программного кода

using System;

using System.ComponentModel;

using System.Linq;

using System.Windows.Forms;

using Billing.DataSetTableAdapters;

using DevExpress.XtraBars;

using DevExpress.XtraBars.Ribbon;

using DevExpress.XtraEditors;

namespace Billing

{

public partial class Form1 : XtraForm

{

public Form1()

{

using (var login = new Login())

{

if (login.ShowDialog() != DialogResult.OK)

{

return;

}

user = login.User;

}

InitializeComponent();

InitGrid();

foreach (RibbonPage p in ribbonControl.Pages)

{

p.Visible = false;

}

foreach (var index in user.Roles)

{

ribbonControl.Pages[index - 1].Visible = true;

}

ribbonControl.Pages[4].Visible = true;

}

void InitGrid()

{

var gridDataList = new BindingList<BillingApplication>();

using (var adapter = new applicationTableAdapter())

{

if (user.Roles.Contains(5))

{

foreach (var application in

Enumerable.Select(adapter.GetData(), row => new BillingApplication

{

AppCode = row.AppCode,

Description = row.Description,

idApplication = row.idApplication,

Name = row.Name

}))

{

gridDataList.Add(application);

}

}

else

{

foreach (var application in

Enumerable.Select(adapter.GetDataByUserId(user.IdUser), row => new BillingApplication

{

AppCode = row.AppCode,

Description = row.Description,

idApplication = row.idApplication,

Name = row.Name

}))

{

gridDataList.Add(application);

}

}

}

gridView1.Columns.Clear();

gridControl.DataSource = gridDataList;

gridView1.PopulateColumns();

gridControl.ForceInitialize();

gridView1.BestFitColumns();

}

private void ribbonControl_SelectedPageChanged(object sender, EventArgs e)

{

if (ribbonControl.SelectedPage == null) return;

int index = ribbonControl.SelectedPage.PageIndex;

if (index == 0)

{

BindingList<BillingApplication> gridDataList;

using (var adapter = new applicationTableAdapter())

{

gridDataList = new BindingList<BillingApplication>();

if(user.Roles.Contains(5))

foreach (var p in from DataSet.applicationRow row in adapter.GetData().Rows

select new BillingApplication

{

idApplication = row.idApplication,

AppCode = row.AppCode,

Description = row.Description,

Name = row.Name

})

{

gridDataList.Add(p);

}else

{

foreach (var p in from DataSet.applicationRow row in adapter.GetDataByUserId(user.IdUser).Rows

select new BillingApplication

{

idApplication = row.idApplication,AppCode = row.AppCode,

Description = row.Description,

Name = row.Name

})

{

gridDataList.Add(p);

}

}

}

gridView1.Columns.Clear();

gridControl.DataSource = gridDataList;

}

if (index == 1)

{

BindingList<User> gridDataList;

using (var adapter = new userTableAdapter())

{

gridDataList = new BindingList<User>();

foreach (var p in from DataSet.userRow userRow in adapter.GetData().Rows

select new User

{

IdUser = userRow.idUser,

FirstName = userRow.FirstName,

DateOfBirth = userRow.DateOfBirth,

LastName = userRow.LastName,

Login = userRow.Login,

MidleName = userRow.MidleName,

PasportNum = userRow.PasportNum,

assword = userRow.Password,

Phone = userRow.Phone

})

{

gridDataList.Add(p);

}

}

gridView1.Columns.Clear();

gridControl.DataSource = gridDataList;

}

if (index == 2)

{

BindingList<BillingNumber> gridDataList;

using (var adapter = new numberTableAdapter())

{

gridDataList = new BindingList<BillingNumber>();

foreach (var p in from DataSet.numberRow row in adapter.GetData().Rows

select new BillingNumber

{

idNumber = row.idNumber,

Cost = row.Cost,

SmsNumber = row.Number

})

{

gridDataList.Add(p);

}

}

gridView1.Columns.Clear();

gridControl.DataSource = gridDataList;

}

if (index == 3)

{

BindingList<Permission> gridDataList;

using (var adapter = new rolesTableAdapter())

{

gridDataList = new BindingList<Permission>();

foreach (var p in from DataSet.rolesRow rolesRow in adapter.GetData().Rows

select new Permission

{

idPermission = rolesRow.idRoles,

Level = rolesRow.Permission,

Name = rolesRow.RoleName

})

{

gridDataList.Add(p);

}

}

gridView1.Columns.Clear();

gridControl.DataSource = gridDataList;

}

gridView1.PopulateColumns();

gridControl.ForceInitialize();

gridView1.BestFitColumns();

}

private void barButtonItem4_ItemClick(object sender, ItemClickEventArgs e)

{

using (var addRoles = new AddRoles())

{

addRoles.ShowDialog();

}

}

private void barButtonItem7_ItemClick(object sender, ItemClickEventArgs e)

{

using (var addUser = new AddUser())

{

addUser.ShowDialog();

}

}

private void barButtonItem8_ItemClick(object sender, ItemClickEventArgs e)

{

var index = gridView1.GetFocusedDataSourceRowIndex();

var gridDataList = (BindingList<User>)gridControl.DataSource;

var data = gridDataList[index];

DataSet.userRow row;

using (var adapter = new userTableAdapter())

{

row = (DataSet.userRow)adapter.GetDataByIdUser(data.IdUser).Rows[0];

}

using (var addUser = new AddUser(row))

{

addUser.ShowDialog();

}

}

private void barButtonItem9_ItemClick(object sender, ItemClickEventArgs e)

{

var index = gridView1.GetFocusedDataSourceRowIndex();

var gridDataList = (BindingList<User>)gridControl.DataSource;

var data = gridDataList[index];

using (var adapter = new userTableAdapter())

{

var row = (DataSet.userRow)adapter.GetDataByIdUser(data.IdUser).Rows[0];

row.Delete();

adapter.Update(row);

}

}

private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)

{

using (var addApplication = new AddApplication(user))

{

addApplication.ShowDialog();

if (addApplication.DialogResult == DialogResult.OK)

{

ribbonControl_SelectedPageChanged(this, new EventArgs());

}

}

}

private void barButtonItem2_ItemClick(object sender, ItemClickEventArgs e)

{

var index = gridView1.GetFocusedDataSourceRowIndex();

var gridDataList = (BindingList<BillingApplication>)gridControl.DataSource;

var data = gridDataList[index];

using (var adapter = new applicationTableAdapter())

{

var row = (DataSet.applicationRow)adapter.GetDataByApplicationId(data.idApplication).Rows[0];

using (var addApplication = new AddApplication(user, row))

{

addApplication.ShowDialog();

if (addApplication.DialogResult == DialogResult.OK)

{

ribbonControl_SelectedPageChanged(this, new EventArgs());

}

}

}

}

private void barButtonItem3_ItemClick(object sender, ItemClickEventArgs e)

{

var index = gridView1.GetFocusedDataSourceRowIndex();

var gridDataList = (BindingList<BillingApplication>)gridControl.DataSource;

var data = gridDataList[index];

using (var adapter = new applicationTableAdapter())

{

var row = (DataSet.applicationRow)adapter.GetDataByApplicationId(data.idApplication).Rows[0];

row.Delete();

adapter.Update(row);

}

}

private void barButtonItem14_ItemClick(object sender, ItemClickEventArgs e)

{

Application.Exit();

}

private void barButtonItem11_ItemClick(object sender, ItemClickEventArgs e)

{

using (var addNumber = new AddNumber())

{

if (addNumber.ShowDialog() == DialogResult.OK)

ribbonControl_SelectedPageChanged(this, new EventArgs());

}

}

private void barButtonItem12_ItemClick(object sender, ItemClickEventArgs e)

{

var index = gridView1.GetFocusedDataSourceRowIndex();

var gridDataList = (BindingList<BillingNumber>)gridControl.DataSource;

var data = gridDataList[index];

using (var adapter = new numberTableAdapter())

{

var row = (DataSet.numberRow)adapter.GetDataByNumberId(data.idNumber).Rows[0];

using (var addNumber = new AddNumber(row))

{

if (addNumber.ShowDialog() == DialogResult.OK)

{

ribbonControl_SelectedPageChanged(this, new EventArgs());

}

}

}

}

private void barButtonItem13_ItemClick(object sender, ItemClickEventArgs e)

{

var index = gridView1.GetFocusedDataSourceRowIndex();

var gridDataList = (BindingList<BillingNumber>)gridControl.DataSource;

var data = gridDataList[index];

using (var adapter = new numberTableAdapter())

{

var row = (DataSet.numberRow)adapter.GetDataByNumberId(data.idNumber).Rows[0];

row.Delete();

adapter.Update(row);

}

}

private void barButtonItem10_ItemClick(object sender, ItemClickEventArgs e)

{

var index = gridView1.GetFocusedDataSourceRowIndex();

var gridDataList = (BindingList<User>)gridControl.DataSource;

var data = gridDataList[index];

using (var rolesForm = new RolesForm(data))

{

rolesForm.ShowDialog();

}

}

private void barButtonItem15_ItemClick(object sender, ItemClickEventArgs e)

{

using (var login = new Login())

{

if (login.ShowDialog() != DialogResult.OK)

{

return;

}

user = login.User;

}

InitGrid();

foreach (RibbonPage p in ribbonControl.Pages)

{

p.Visible = false;

}

foreach (var index in user.Roles)

{

ribbonControl.Pages[index - 1].Visible = true;

}

ribbonControl.Pages[4].Visible = true;

}

}

}

Приложение Б

Листинг SQL скрипта

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

DROP SCHEMA IF EXISTS `billing`;

CREATE SCHEMA IF NOT EXISTS `billing` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

SHOW WARNINGS;

USE `billing`;

-- -----------------------------------------------------

-- Table `User`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `User` ;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `User` (

`idUser` INT NOT NULL AUTO_INCREMENT,

`Login` VARCHAR(45) NULL,

`Password` VARCHAR(45) NULL,

`FirstName` VARCHAR(45) NULL,

`LastName` VARCHAR(45) NULL,

`MidleName` VARCHAR(45) NULL,

`DateOfBirth` DATE NULL,

`PasportNum` VARCHAR(45) NULL,

`Phone` VARCHAR(45) NULL,

PRIMARY KEY (`idUser`) )

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_general_ci;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `Number`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `Number`;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `Number` (

`idNumber` INT NOT NULL AUTO_INCREMENT,

`Number` VARCHAR(45) NULL,

`Cost` VARCHAR(45) NULL,

PRIMARY KEY (`idNumber`) )

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_general_ci;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `Application`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `Application`;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `Application` (

`idApplication` INT NOT NULL AUTO_INCREMENT,

`idUser` INT NULL,

`idNumber` INT NULL,

`Name` VARCHAR(45) NULL,

`AppCode` VARCHAR(45) NULL,

`Description` TEXT NULL,

PRIMARY KEY (`idApplication`) )

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_general_ci;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `Roles`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `Roles`;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `Roles` (

`idRoles` INT NOT NULL AUTO_INCREMENT,

`Permission` INT NULL,

`RoleName` VARCHAR(45) NULL,

PRIMARY KEY (`idRoles`) )

ENGINE = InnoDB;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `Roles_has_User`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `Roles_has_User`;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `Roles_has_User` (

`idRoles` INT NOT NULL,

`idUser` INT NOT NULL,

PRIMARY KEY (`idRoles`, `idUser`) )

ENGINE = InnoDB;

SHOW WARNINGS;

SET SQL_MODE=@OLD_SQL_MODE;

SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Размещено на Allbest.ru

...

Подобные документы

  • Разработка модели системы тестирования пользователей с применением технологии "клиент-сервер". Требования к программному изделию и документации. SADT диаграмма системы тестирования до и после автоматизации. Настройка SQL-сервера и установка программы.

    курсовая работа [1,5 M], добавлен 22.01.2013

  • Реализация телефонной связи по IP-сети с помощью набора протоколов и оборудования. Разработка подсистемы динамической маршрутизации звонков для системы биллинга и менеджмента в сети IP-телефонии. Основные требования к графическому интерфейсу пользователя.

    дипломная работа [1,8 M], добавлен 08.11.2015

  • Автоматизированные системы учета и обработки заявок от пользователей. Функциональное проектирование и моделирование системы учета. Проектирование базы данных, алгоритм работы системы и ее программная реализация. Технико-экономическое обоснование проекта.

    дипломная работа [1,6 M], добавлен 05.04.2014

  • Проектирование базы данных в среде MS Access 2000 для учета кадров РОВД г. Климовичи. Описание основных функций, которые должна выполнять данная информационная система. Верификация спроектированной логической модели. Результаты тестирования программы.

    курсовая работа [655,4 K], добавлен 06.09.2015

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

    курсовая работа [1,2 M], добавлен 21.06.2015

  • Необходимость создания моделируемой системы. Описание моделируемой системы и задание моделирования. Структурная схема модели системы. Блок–диаграмма. Текст программы. Описание текста программы. Результаты моделирования. Эксперимент, его результаты.

    курсовая работа [35,9 K], добавлен 19.11.2007

  • Назначение и архитектура экспертных систем, их применение в сфере образования. Экспертные системы тестирования, принципы их функционирования. Инструментальные средства создания приложения и разработка программы тестирования. Описание программы, листинг.

    дипломная работа [706,4 K], добавлен 07.05.2012

  • Современный опыт в сфере энергетики с помощью информационный технологий и решений. Требования менеджмента к информационному обеспечению управления. Расчетно-аналитическая система "Биллинг-Онлайн". Внедрение информационной системы, эффективность проекта.

    дипломная работа [1,1 M], добавлен 07.06.2014

  • Технология дополненной реальности в обучении. Разработка информационной системы для выполнения практикумов по курсу "Электротехника". Приложения-помощники, использующие дополненную реальность. Моделирование информационной системы, обзор фреймворков.

    дипломная работа [4,2 M], добавлен 18.11.2017

  • Анализ существующей методики воинского учета. Схема архитектуры и программная реализация разрабатываемого АРМ специалиста отдела мобилизационной работы и комплектования. Логическая структура реляционной базы данных. Результаты тестирования программы.

    дипломная работа [1,4 M], добавлен 16.05.2013

  • Разработка автоматизированной системы учета и мониторинга выполнения заказов клиентов в ЗАО "Централизованный региональный технический сервис" группы компаний MAYKOR. Обоснование СУБД и инструментальных средств программирования. Затраты на разработку.

    дипломная работа [2,8 M], добавлен 18.01.2015

  • Создание системы компьютерного тестирования для контроля знаний. Проблемы, возникающие при создании тестовой оболочки в среде Ren`Py. Разработка проектных решений по системе и её частям. Структура тестирования, вопросы и ответы тестирующей системы.

    дипломная работа [501,6 K], добавлен 12.09.2016

  • Разработка приложений для смартфонов на ОС Android для сети аптек "Фармация". Архитектура операционной системы Android. Архитектура и реализация приложения. Его функциональность. Описание работы мобильного приложения. Расчет затрат на создание продукта.

    дипломная работа [1,6 M], добавлен 17.06.2017

  • Разработка структуры информационной системы с использованием СУБД MS Access. Моделирование бизнес-процессов с помощью IDEF0-диаграмм. Проектирование приложения в среде Delphi. Физическая реализация структуры базы данных. Создание интерфейса системы.

    отчет по практике [3,4 M], добавлен 07.01.2015

  • Проектирование модели базы данных в соответствии с предметной областью "Торговля". Разработка архитектуры системы безопасности приложения по ведению базы данных. Реализация приложения, обеспечивающего учет продаж и закупок предприятия. Способы его защиты.

    дипломная работа [2,5 M], добавлен 05.02.2017

  • Использование информационных технологий для управления предприятием. Изучение структуры системы биллинг, применение ее в сфере продажи услуг интернет. Контроль и управление безналичными формами оплаты при поступлении денежных средств на электронные счета.

    курсовая работа [690,6 K], добавлен 01.05.2015

  • Построение концептуальной модели системы и ее формализация. Алгоритмизация модели системы и ее машинная реализация. Построение логической схемы модели. Проверка достоверности модели системы. Получение и интерпретация результатов моделирования системы.

    курсовая работа [67,9 K], добавлен 07.12.2009

  • Моделирование имитационной модели системы управления, состоящей из ПИ-регулятора и инерционного объекта второго порядка. Прогон и оптимизация модели на системе имитационного моделирования ИМОДС. Оценка параметров системы до и после оптимизации.

    курсовая работа [1,3 M], добавлен 17.02.2013

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

    курсовая работа [35,0 K], добавлен 08.08.2011

  • Описание технологии asp.net. Страницы веб-приложения, тестирование системы. Описание функциональной, динамической модели системы. Диаграммы вариантов использования, последовательности, база данных приложения. Реализация программы, интерфейс, тестирование.

    курсовая работа [3,2 M], добавлен 30.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.