АРМ инженера АТС
1. Постановка задачи
.1 Функции АРМа инженера АТС
Одной из задач, решаемых в проекте АСТУП является задача автоматизации работы персонала, отвечающего за работу станционного участка или отдельной АТС. Таким образом необходимо разработать «АРМ оператора-инженера АТС» предназначенный для повышения производительности труда работников предприятия.
В этом АРМе с помощью главного меню, которое выглядит следующим образом, должны быть реализованы следующие функции:
под этим понимается занесение в соответствующие БД
(ATS, PHONE_DIAP, FREE_PH)
* типа телефона (телефон, таксофон, НЦС);
* диапазона номеров;
* вида подключения (отдельный, спаренный);
* состояния (свободный, проверочный, бронированный, неисправный, служебный, эксплуатационный запас);
* количество задействованных отдельных номеров для квартирных абонентов;
* количество задействованных спаренных номеров для квартирных абонентов;
* количество задействованных отдельных номеров для учреждений;
* количество задействованных спаренных номеров для учреждений;
* количество задействованных таксофонных номеров;
* количество задействованных номеров с сигнализацией;
* количество номеров, бронированных цехом;
* количество служебных номеров;
* количество проверочных номеров;
* количество номеров с АВУ н/ч;
* количество номеров с АВУ в/ч;
Здесь используются БД: A1, A16.
* количество свободных и забронированных отдельных телефонов;
* количество свободных и забронированных спаренных комплектов;
* количество спаренных телефонов для которых одно плечо занято;
* количество свободных и забронированных спаренных телефонов;
* количество свободных и забронированных спаренных таксофонов;
* количество свободных и забронированных НЦС;
* количество свободных и забронированных абонентских линий;
Здесь используются БД: ATS, PHONE_DIAP, ATS_SP, ATS_SP_NSTD, PHONE_SP, FREE_PH.
Принимаемые значения полей:
- на данной АТС нет спаренных номеров;
3 - номера можно спаривать любой с любым; нет понятия спаренного комплекта номеров.
4 - заказной вид спаренности
номера спарены по десяткам; например, на АТС 257 спарены
- номера спарены по сотням; например, на АТС 256 спарены 01 с 02; 47 с 58 сотни.
7 - номера спарены по всем тысячам с 6 по 9 сотню в одном десятке по цифрам единиц.
8 - комбинация схем спаренности 5 (основная схема) и 4 (дополнительная схема);
9 - комбинация схем спаренности 6 (основная схема) и 4 (дополнительная схема).
Используются БД ATS, S00, S01.
* Код АТС;
* Вид АТС;
* Код опорной АТС;
* Наименование;
* Емкость;
* Вид спаренности;
* Емкость;
* Вид спаренности;
* Количество цифр в номере для телефонов;
* Количество цифр в номере для таксофонов;
* Количество проверочных номеров;
* Количество таксофонных номеров;
* Дата взятия станции под АПУС;
день месяца,
номер месяца,
год;
* Код АТС, с которой заведен мультиплексор;
* Емкость мультиплексора.
1.2 Концептуальная модель системы
Для работы с «АРМ-ом оператора-инженера АТС» необходимо использовать базы данных, приведенные в таблице 1.1.
Таблица 1.1.
A1ОСНОВНАЯ ЕМКОСТЬ (АРХИВ)A16ТАБЛИЦА ТАКСОФОНОВA19КОЛЛЕКТИВНЫЕ АБОНЕНТЫA2АБОНЕНТЫA5ФАМИЛИИA7УЛИЦЫATSАТСATS_DIAPДИАПОЗОНЫ НОМЕРОВ НА АТСATS_SPВАРИАНТЫ СПАРЕННОСТИATS_SP_NSTDНЕСТАНДАРТНЫЕ ВАРИАНТЫ СПАРЕННОСТИFREE_PHТАБЛИЦА СВОБОДНЫХ НОМЕРОВPHONE_DIAPТАБЛИЦА ДИАПОЗОНОВ НА АТСPHONE_SPСПАРЕННЫЕ НОМЕРА НА АТСS00, S01, S21, S84КЛАССИФИКАТОРЫUDK_HOUSEРЕГИСТРАЦИОННЫЕ НОМЕРА ДОМОВA31ТАБЛИЦА СЕРИЙНЫХ НОМЕРОВA4БАНКИ
Использование конкретных БД конкретными формами приведено в таблице 2.1.
Таблица 1.2.
Наименование функцииИспользуемые БД1. Ввод и корректировка справочника АТС.ATS, S00, S012. Ввод диапозонов номеров, принадлежащих к АТСATS, ATS_DIAP, PHONE_DIAP3. Ввод схемы спаренностиATS, PHONE_DIAP, ATS_SP, ATS_SP_NSTD, PHONE_SP4. Корректировка спаренных комплектовATS, PHONE_DIAP, ATS_SP, ATS_SP_NSTD, PHONE_SP5. Ведение станционной номерной емкостиATS, PHONE_DIAP, FREE_PH6. Просмотр станционной номерной емкостиATS, PHONE_DIAP, ATS_SP, ATS_SP_NSTD, PHONE_SP, FREE_PH7. Отчеты и справки7.1. Отчет о свободной емкостиATS, PHONE_DIAP, ATS_SP, ATS_SP_NSTD, PHONE_SP, FREE_PH7.2. Отчет о задействованной емкостиA1, A167.3. Получение справки по номеру телефонаA1, A16, A19, A31, A4, A5, A7, UDK_HOUSE
2. Теоретическая часть
2.1 Разработка ИО
Таблица соответствий между выполняемыми функциями и входными, выходными данными (используемые БД, различные бумажные документы)
Наименование функцииОсновные данные (входные)Основные данные (выходные)1. Ввод и корректировка справочника АТС.S00, S01Формирование БД ATS2. Ввод диапозонов номеров, принадлежащих к АТСS00, S01Формирование БД ATS_DIAP, PHONE_DIAP3. Ввод схемы спаренностиS00, S01, На основании статист. Данных и соот-щих приказов ввод с клавиатуры необходимых параметров.Формирование БД ATS_SP, ATS_SP_NSTD, PHONE_SP4. Корректировка спаренных комплектовНаряд на расспаревание телефонаФормирование БД ATS_SP, ATS_SP_NSTD,5. Ведение станционной номерной емкостиS00, S01, На основании статист. Данных и соот-щих приказов ввод с клавиатуры необходимых параметров.Формирование БД FREE_PH6. Просмотр станционной номерной емкостиATS, PHONE_DIAP, ATS_SP, ATS_SP_NSTD, PHONE_SP, FREE_PHЭкранная форма (рис. 3.3.19), при необходимости копия экрана7. Отчеты и справки7.1. Отчет о свободной емкостиATS, PHONE_DIAP, ATS_SP, ATS_SP_NSTD, PHONE_SP, FREE_PHЭкранная форма (рис. 3.3.23), при необходимости копия экрана7.2. Отчет о задействованной емкостиA1, A16Экранная форма (рис. 3.3.24), при необходимости копия экрана7.3. Получение справки по номеру телефонаA1, A16, A19, A31, A4, A5, A7, UDK_HOUSEЭкранные формы (рис. 3.3.26, рис. 3.3.27, рис. 3.3.28, рис. 3.3.29, рис. 3.3.30), при необходимости копии экрана
Под различными бумажными документами понимаются документы, используемые на АТС, но постепенно исчезающие в связи с автоматизацией процесса (журналы по АТС, журналы по записи нарядов, журналы таксофонов, абонентские книги и др.), и наряды на установку телефона, наряды о выключение абонентов по АТС и т.д.
В приложение 3 приведен отчет о задействованной емкости по станционному участку, который должен был заполнять оператор до автоматизации.
Внутримашинные ИБ
Все используемые БД связанны между собой, и описание всех связей было бы слишком громоздким. Поэтому, для наглядности можно привести небольшой пример из которого будет видно каким образом идет обращение к необходимым БД и как осуществляется поиск необходимых данных.
Рассмотрим операцию получения отчета о задействованной номерной емкости:
Рис. 2.1.
Для получения отчета вводится код АТС.
Сведения об отдельных и спаренных телефонах выбираются из БД А1 поля «Категория телефона». Информация о принадлежности номера к квартире или учреждению берется также из А1 но по полю «Код абонента / предприятия». Количество задействованных таксофонов выбирается из А16 «Номер абонентской линии». По полю «Признак номера» из А1 берется число бронированных номеров. Количество служебных - из А1 «Код признака начисления». Вид спаренности по АВУ также находится в А1 в поле «Признак вечернего телефона». Тут же и сигнализация. Проверочные номера - А1 «Категория телефона».
Таблица 2.1. Структура БД А1
Название поляДлиннаИмя поля в БДТип поляТелефон9phoneinteger not nullДата корректировки8date_moddateНомер оператора2oper_numsmallintПризнак номера1ab_flagchar(1)Код абонента / предприятия9ab_codeintegerПризнак вечернего1evening_phchar (1)Код доп. призн4ext_codeintegerКод признака начисления2tax_flagsmallintКатегория телефона1cat_phonechar (1)Дата ввода8input_datedateКод должности2work_codesmallintНомер наряда2order_numintegerКод операции2op_codesmallint
Таблица 2.2. Структура БД А16
Название поляДлиннаИмя поля в БДТип поляТелефон9phoneintegerНомер абонентской линии4num_abon_lineintegerТип МТА1typvarchar(2)Категория1cat_phonechar(1)Место установки30addr_phonevarchar(30)Код улицы5street_codeintegerНомер дома7house_numchar(7)Номер корпуса1subhouse_numchar(1)Дата установки8datadustdateДата снятия8datasndateДата ввода8input_datedateОснование30point_viewvarchar(30)Номер оператора2oper_numsmallintЗаводской номер2plant_numintegerРайонный узел30regionvarchar(30)
Таким образом видно, что A1 и A16 связаны по полю «Телефон» и «Код оператора».
По этому полю связаны фактически все БД, используемые в АРМе.
Выбор инструментального средства
При выборе СУБД, которая может быть признана пригодной для использования в такой исключительно важной отрасли народного хозяйства, как связь, необходимо учитывать следующие факторы:
В настоящее время на рынке СУБД для OC UNIX имеется большой выбор продуктов, значительно различающихся как по возможностям, так и по стоимости. Для современных СУБД, занимающих лидирующее положение на рынке, типичными являются поддержка реляционной модели данных, использование стандартного языка запросов SQL, построение по принципу «клиент-сервер», механизм оперативной обработки транзакций, наличие развитых средств поддержки разработки пользовательских приложений, систем генерации отчетов, построителей форм, поддержка программирования на наиболее распространенных языках высокого уровня. Основным критически важным фактором в СУБД является архитектура сервера баз данных. К архитектурам современных серверов баз данных выдвигаются четыре основных требования:
Расширяемость - это способность системы увеличивать или уменьшать ресурсы системы по мере необходимости. Существуют два типа расширяемости: горизонтальная и вертикальная. Горизонтальная расширяемость обозначает способность нескольких серверов взаимодействовать друг с другом и разделять нагрузку. Вертикальная расширяемость увеличивает или уменьшает общую мощность системы, добавляя к системе новые компоненты[4].
Динамически расширяемая архитектура предназначена для высокой производительности. Высокая производительность достигается за счет параллельной архитектуры алгоритмов таких как: распараллеливание запросов, фрагментация данных или многопоточность.
Существует три области, которые определяют доступность системы базы данных:
Целесообразно привести сравнение по 13 основным показателям серверов баз данных трех крупнейших производителей: INFORMIX Software Inc. (INFORMIX-OnLine 7.1), Oracle Corp. (Oracle 7.1), Sybase Corp. (Sybase System 10) (см. табл. 2.3) [6].
Для проектирования системы АСТУП выбрана СУБД Informix фирмы Informix Software Inc. Такой выбор был сделан на основании:
Таблица 2.3. Сравнительная характеристика серверов баз данных
ХарактеристикаInformix-OnLine 7.1Oracle 7.1Sybase System 10Защита и отказоустойчивость:Уровни защитыС2, В1, В2С2, В1С2Настройка системыonlineofflineofflineАвтоматическая архивацияданетнетСжатие/шифрацияданетнетУправление архивом на МЛданетBackup ServerРазбиение таблиц на разделыданетнетРазмеры управляемых объектовРазделTablespaceБДПараллельная обработка данных:Построение индексовдаДанетВосстановлениедаДанетДинамическое управление ресурсамидаНетнетРаспределение базы данных:Распределенный оптимизатордаНетдаОптимизация построения индексадаНетнетРеплицирование данныхдаПозжепозже
Краткая характеристика СУБД INFORMIX
Основанная в 1980 году, компания Informix уверенно действует на рынке реляционных систем управления базами данных (РСУБД). Сегодня в мире установлено более 600 тысяч систем Informix на машинах разнообразной архитектуры и самой разной мощности. Области применения Informix охватывают практически все сферы науки, образования, промышленности и бизнеса. В ряде областей, таких как банковское дело и финансы, телеобработка, автоматизация проектирования, системы здравоохранения, системы поддержки управленческих решений и офисная автоматизация, решения Informix признаны во всем мире как достигшие уровня мировых стандартов качества и эффективности [7].
Существует много оснований при выборе Informix для системы управления информацией:
5) лидерство Informix в реализации идеологии открытых систем - это не просто фраза, а общепризнанный приоритет в разработке и реализации новых стандартов открытых систем;
Есть много сильных аргументов в пользу Informix при сравнении с любыми другими системами, но в конце концов, самое главное - это то, что Informix обеспечивает реальные решения для реальных проблем, с которыми Вы встречаетесь повседневно в мире открытых систем обработки данных.
Обработка баз данных по технологии «Клиент-сервер» обеспечивает доступ к информации из любой точки предприятия, прямо с рабочего места пользователя. Концепция «Клиент-Сервер» универсально подходит как для локальных вычислительных задач, так и для построения интегральной базы данных предприятия с оперативной обработкой.
Успешная реализация архитектуры «Клиент-Сервер» опирается на промышленные стандарты. Informix поддерживает стандарты «де-факто», включая стандарты SQL-ANSI, X/Open, SQL-Access Group, X/Open XA, Microsoft ODBC, IBM DRDA.
Предприятия, выбравшие для себя новую идеологию открытых систем, стремятся реализовать новые возможности, но в то же время идут на определенный риск. Informix, как никакая другая компания, вложила в открытые системы свой интеллектуальный потенциал и многолетний практический опыт.: лидер в технологии баз данных в среде UNIX; первая фирма, решившая проблемы интеграции систем в средах DOS и UNIX; многолетний поставщик продуктов для локальных сетей в NetWare.
Сегодня Informix заслуженно имеет мировую репутацию поставщика баз данных для открытых систем. Для всех лидирующих операционных платформ - UNIX, Windows, Windows NT, NetWare - Informix предлагает сервер-продукты, средства пользователя, развитые возможности интеграции систем.- единственная фирма - поставщик СУБД, которая предлагает диапазон серверов для архитектуры «Клиент-Сервер». Informix-Online - это реляционная система повышенной производительности, в которой сервер спроектирован так, чтобы удовлетворить самым жестким требованиям по оперативной обработки транзакций (OLTP). Система OnLine, разработанная для Среды UNIX и NetWare, поддерживает также функции мультимедиа для хранения и обработки образов документов, аудио- и видеоданных в цифровой форме, и ряд других принципиально новых возможностей.NFORMIX-4JL - Основное инструментальное средство для программирования БД и создания пользовательских приложений на языке 4JL Оно включает:
Все это собранно в единую интегрированную среду - оболочку поддержки программирования, управляемую меню.
Язык 4JL содержит в себе:
Производительность сетевой среды «Клиент-Сервер» определяет эффективность всей системы управления базой данных. Informix достиг наивысшей производительности по сравнению с фирмами-конкурентами именно благодаря совершенной конструкции подсистемы «Клиент-Сервер». Средства буфферизации, разделения основной памяти
минимизируют обращения к дисковой памяти (относительно медленные процессы) и максимизируют использование более быстрой памяти RAM.также детально исследовал проблему распределения баз данных в сети и оптимизировал алгоритмы обмена данными между клиентами и серверами. Реализованные в продуктах Informix алгоритмы значительно уменьшают сетевой трафик и повышают производительность прикладной системы в целом. Для объемных по информации и трафиков приложений (с оперативной обработкой транзакций) предлагается специализированный менеджер ресурсов в стандарте X/Open XA, обеспечивающий Informix эффективное использование ресурсов и высокую производительность (число обрабатываемых транзакций в секунду) [7].
При решении вопросов защиты информации и обеспечения целостности базы данных Informix предлагает исключительно полный и отработанный набор методов. Среди стандартных решений Informix по обеспечению надежности системы, отметим: основанные на стандарте ANSI реляционные средства анализа и контроля целостности данных (встроены в сервер), процедуры верификации данных, двухфазный протокол отката и восстановления базы данных и разнообразные средства блокирования и защиты данных. Все эти механизмы в правильной комбинации работают совместно, защищая Ваши данные от несанкционированного доступа и разрушения.
Многие информационные приложения являются жизнеобеспечивающими для деятельности предприятия и должны выполняться круглосуточно по принципу «non-stop». Informix дает Вам необходимые средства для резервирования данных в процессе работы системы и быстрого восстановления системы после любого сбоя или отказа. Этой же цели служат такие средства как зеркальное отображение дисковой памяти (горячее резервирование диска) и механизмы оперативного восстановления. В результате применения всех этих детально сконструированных и тщательно проверенных средств Вы получаете надежно работающую систему, в которой минимизируются последствия любых системных отказов.предоставляет наиболее передовые продукты для создания и реализации информационных систем с открытой архитектурой. Центральные продукты Informix - это серверы баз данных, средства для разработки приложений, средства конечного пользователя для доступа к данным и средства интеграции. Все продукты базируются на ANSI стандарте SQL и выполняются под управлением ведущих операционных систем, включая UNIX, Windows, Windows NT, NetWare и Macintosh и др.
2.2 Разработка алгоритмического обеспечения
В данном пункте приведем словесное описание укрупненного алгоритма.
СПРАВОЧНИКА АТС»
ПРИНАДЛЕЖАЩИХ К АТС.
СПРАВОЧНИКА АТС»
.1. Если выбран вышеуказанный пункт то вводятся следующие реквизиты:
3.1.1. ПРОВЕРКА: зафиксировать?
.1.1.1.ДА: Запись в соответствующие БД
.1.1.2.НЕТ: продолжение работы с выбранным пунктом меню.
.2. Если данный пункт меню не выбран то ожидается переход к любому другому пункту или нажатие «ESC» для выхода из программы.
. ПРОВЕРКА: выбран ли пункт меню «ВВОД СХЕМЫ СПАРЕННОСТИ»
.1. Если выбран вышеуказанный пункт то вводятся следующие реквизиты:
4.1.1. ПРОВЕРКА: зафиксировать?
.1.1.1.ДА: Запись в соответствующие БД
.1.1.2.НЕТ: продолжение работы с выбранным пунктом меню.
.2. Если данный пункт меню не выбран то ожидается переход к любому другому пункту или нажатие «ESC» для выхода из программы.
. ПРОВЕРКА: выбран ли пункт меню «КОРРЕКТИРОВКА СПАРЕННЫХ КОМПЛЕКТОВ»
5.1.1. ПРОВЕРКА: зафиксировать?
.1.1.1.ДА: Запись в соответствующие БД
.1.1.2.НЕТ: продолжение работы с выбранным пунктом меню.
.2. Если данный пункт меню не выбран то ожидается переход к любому другому пункту или нажатие «ESC» для выхода из программы.
НОМЕРМОЙ ЕМКОСТИ»
.1. Если выбран вышеуказанный пункт то вводятся следующие реквизиты:
6.1.1. ПРОВЕРКА: зафиксировать?
.1.1.1.ДА: Запись в соответствующие БД
.1.1.2.НЕТ: продолжение работы с выбранным пунктом меню.
.2. Если данный пункт меню не выбран то ожидается переход к любому другому пункту или нажатие «ESC» для выхода из программы.
. ПРОВЕРКА: выбран ли пункт меню «ПРОСМОТР СТАНЦИОННОЙ
НОМЕРМОЙ ЕМКОСТИ»
.1. Если выбран вышеуказанный пункт то происходит отображение диапазонов для введенного кода АТС.
.2. Если данный пункт меню не выбран то ожидается переход к любому другому пункту или нажатие «ESC» для выхода из программы.
. ПРОВЕРКА: выбран ли пункт меню «ОТЧЕТЫ ИСПРАВКИ»
.1. Если выбран вышеуказанный пункт то на экране происходит отображение трех подпунктов данного меню.
ЕМКОСТИ» то происходит обращение к БД ATS, PHONE_DIAP, ATS_SP, ATS_SP_NSTD, PHONE_SP, FREE_PH и на экране формируется отчет (рис. 3.3.22.).
.1.2. Если данный пункт меню не выбран то ожидается переход к любому другому пункту или нажатие «ESC» для выхода в главное меню.
НОМЕРНОЙ ЕМКОСТИ» то происходит обращение к БД A1, A16 и на экране формируется отчет (рис. 3.3.22.).
8.3.1. Если выбран пункт меню «ПОЛУЧЕНИЕ СПРАВКИ ПО НОМЕРУ ТЕЛЕФОНА» то происходит обращение к БД A1, A16, A31, A19, A4, A5, A7, UDK_HOUSE и на экране формируется отчеты (рис. 3.3.25., рис. 3.3.26., рис. 3.3.27., рис. 3.3.27., рис. 3.3.29., рис. 3.3.30.).
3. Расчетная часть
.1 Выбор комплекса технических средств
Комплекс технических средств является материальной основой системы и представляет собой совокупность средств вычислительной техники и связи, терминального оборудования и носителей информации, предназначенных для реализации технологического процесса обработки информации.
Структура КТС - одноуровневая многопользовательская система с центральным вычислительным комплексом (ЦВК) и набором автоматизированных рабочих мест (далее по тексту АРМ), оснащенных терминальным оборудованием и подключенных к ЦВК по каналам связи.
АРМ работают только в режиме связи с ЦВК.
Описание центрального вычислительного комплекса.
Реализация функций, возлагаемых на ЦВК, обеспечивается наличием следующих групп устройств:
Описание функционирования центрального вычислительного комплекса.
С учетом требований технического задания по обеспечению безотказной работы комплекса технических средств вычислительный комплекс имеет симметричную структуру с резервированием оборудования. Производительность оборудования обеспечивает нормальную работу всех пользователей системы в нормальном и аварийном режиме функционирования системы.
В аварийном режиме, при отказе любого из элементов оборудования центрального вычислительного комплекса, предусмотрено переключение работающих пользователей системы на исправный комплект оборудования. На время восстановления работоспособности отказавшего устройства комплекс переводится на работу в режиме без резервирования.
Вычислительный комплекс реализован на основе двух микро - ЭВМ, оснащенных необходимыми контроллерами внешних устройств и связанных в единую сеть.
Для реализации функций основного и резервного серверов базы данных выбраны компьютеры ALR Revolution Quad 6.
Основной сервер базы данных имеет следующую конфигурацию:
Резервный сервер базы данных имеет аналогичную конфигурацию, но с ОЗУ емкостью 128 Мбайт.
Кроме перечисленных средств вычислительной техники в состав комплекса входят коммуникационные серверы CNS-1600 для подключения в систему пользователей по высокоскоростным стандартным последовательным и параллельным байтовым интерфейсам, а также сетевые концентраторы компании Accton 10/100 Mbps, модель SwitcHub-8se.
АРМ, территориально располагающиеся вне здания 62 АТС (удаленные), подключаются к вычислительному комплексу через модемы 2842/1442 RM по выделенным телефонным линиям. Обмен осуществляется со скоростью 115,2/38,4 Кбит/с по протоколу V.42 с уплотнением по стандарту CCITT V.42 bis. В составе оборудования удаленного АРМ используется также терминал Esprit 5510 и мультипорт 16-портовый Star Technologies Multi*Port II+16.
3.2 Разработка ПО
При выборе операционной системы учитывался характер вычислительных задач, решаемых в проектируемой системе. Требуется использование высокопроизводительной многопользовательской многозадачной операционной системы (ОС), максимально эффективно использующей вычислительные возможности выбранного микропроцессора INTEL.
В качестве ОС выбрана стандартная ОС SCO UNIX System V/386 Release 3.2 Версия 4.2 американской фирмы The Santa Cruz Operation (SCO), которой принадлежит наибольшая доля на рынке ОС UNIX для систем на базе микропроцессора INTEL 386/486/Pentium. SCO UNIX - современная 32-х разрядная многопользовательская, многозадачная операционная система, предназначенная для работы на компьютерах на базе процессоров INTEL 386/486/Pentium.
Операционная система поддерживает большое количество периферийных устройств и обладает встроенными средствами коммуникации и защиты, соответствующей стандарту С2 правительства США. Эта версия выбрана компанией Digital Equipment (DEC) в качестве основной операционной системы для своих многопользовательских систем на базе микропроцессора INTEL 80486. [8]NFORMIX-4JL - Основное инструментальное средство для программирования БД и создания пользовательских приложений на языке 4JL Оно включает:
Все это собранно в единую интегрированную среду - оболочку поддержки программирования, управляемую меню.
Язык 4JL содержит в себе:
Программа на языке 4JL может состоять из нескольких файлов (модулей) с исходными текстами на языке 4JL. К ней также относятся файлы с описанием используемых экранных форм, которые компилируются отдельно. Имя каждого модуля должно иметь расширение. 4jl (например, modul.4jl), а имя файла с описанием экранных форм.per (например, form2.per).
Каждый модуль содержит описание переменных и несколько процедурных блоков function (подпрограммы) и report блоки печати. В программе должен быть один блок main - главный блок. На него будет передаваться управление при старте программы.
В данной программе для ведения классификатора АТС используется функция stanats (kodats). Для ввода еще не существующей АТС - функция stanats_init (). Для корректировки справочника используется функция stanats_found().
В отдельном модуле abongl.4jl собраны функции обработки системных сообщений:syshelp_open() # Открытие окна функциональных клавиш
FUNCTION syshelp (kl6, kl7, kl8, kl9, kl10) # Инициализация клавиш
FUNCTION syshelp_close() # Закрытие окна функциональных клавиш
function syserror_msg (pnam_table, pstatus, pmessage) - Формирование системных сообщений
function syserror (pnam_table, pstatus, pmessage) - Выдача системных сообщений в строке ERROR LINE (см. Приложение 2)
Функционирование комплекса технических средств может осуществляться в режиме загрузки операционной системы, режиме обработки оперативной информации, режиме пакетной обработки информации, режиме технической профилактики и тестиро Режим загрузки представляет собой процесс инициализации операционной системы UNIX версии The Santa Cruz Operation (далее по тексту - SCO UNIX), которая выполняет следующие функции:
·обеспечение независимой работы в многопользовательском режиме переменного числа пользователей;
·защита программ в оперативной памяти ЭВМ;
·управление вводом-выводом на физическом и логическом уровнях;
·организация очереди заявок для вывода информации;
·автоматизация управления выполнением задач;
·использование внешних устройств, входящих в состав комплекса;
·включение драйверов, разработанных пользователем для дополнительно подключаемых устройств;
·обеспечение межмашинного обмена данными по сети;
·генерирование различных версий операционной системы.
Загрузка операционной системы происходит без вмешательства оператора и при успешном завершении заканчивается сообщением::
Режим обработки оперативной информации подразумевает выполнение следующих функций системы:
Режим пакетной обработки информации подразумевает выполнение следующих функций системы:
Одновременное функционирование системы в режиме пакетной и оперативной обработки информации нежелательно вследствие замедления ее работы.
Режим технической профилактики и тестирования предназначен для комплексной проверки работоспособности системы, выявления причин сбоев, локализации неисправностей. Средства тестирования и диагностики включены в состав операционной системы SCO UNIX. Функционирование системы в этом режиме возможно только с участием системного администратора.
Режим завершения работы подразумевает выполнение следующих функций системы:
·сохранение целостной структуры базы данных;
·сохранение файловой структуры системы;
·прекращение работы пользователей системы без потерь информации. [9]
3.3 Разработка ОО
Выполнение программы
Для запуска программы оператор должен включить терминал и модем. После того, как на экране появится тестовое сообщение, следует нажать клавишу <RETURN>. На экране появится системное приглашение. Оператор должен ввести login-имя и пароль. Если данному login-имени разрешен вход в программу, то на экране появится главное меню программы.
Введение информации осуществляется с помощью различных экранных форм, каждое поле которых имеет название, снабжено подсказками и позволяет пользователю вводить информацию без предварительного обучения и подготовки. Перемещение по полям формы осуществляется с помощью клавиш управления курсором (КУК) или <RETURN>.
Главное меню программы выглядит следующим образом:
Ввод справочника АТС.
Вид АТС автоматически выберется при нажатии «_» (пробела)
Рис. 3.3.7.
и занесется в поле «Вид АТС» на экранной форме.
Вводится код опорной АТС для АТС со значением поля «Вид АТС» - «выносная».
Вводится наименование АТС, например: АТС ДК, КВАНТ и пр.
Вводится номерная емкость АТС без учета номеров, отданных на выносные станции, но включая сверхномерную емкость.
В данном пункте меню вводится только основная схема спаренности. Для ввода комбинаций схем спаренности следует воспользоваться соответствующим пунктом меню. Подробнее каждый из видов спаренности будет описан ниже. В случае, если введен пробел и нажата клавиша <RETURN>, на экране появится подсказка (см. рис. 3.3.8.)
Вводится количество цифр набора при выходе на коммутацию в номере телефона данной АТС. Например, для АТС 256 число цифр набора-7.
Вводится количество цифр в номере таксофона данной АТС (если есть сверхномерная емкость).
Вводится количество проверочных номеров
Рис. 3.3.8
Вводится количество номеров таксофонов (из сверхномерной емкости).
Вводится дата взятия станции под АПУС. В случае, если станция не взята под АПУС, следует нажать <RETURN> без ввода.
Ввод в это поле осуществляется в следующем порядке:
Вводится код АТС, на которой расположен пункт обработки номеров телефонов станции наложенной цифровой сети. В случае, если описывается именно такая станция, в данное поле повторить ввод номера АТС. Если на описываемой АТС отсутствует мультиплексор НЦС, то следует нажать <RETURN> без ввода.
Вводится количество пар мультиплексора (обычно 30 или 60). Поле доступно только после заполнения предыдущего.
После ввода последнего поля или «пустого» ввода предпоследнего поля появляется меню с предложением зафиксировать введенные данные в базах данных АСТУП.
Для выхода из режима ввода классификатора АТС используется клавиша <ESC>.
Корректировка справочника АТС
В случае, если в форму «Ввод справочника АТС» вводится код АТС, уже существующий в системе, появится экранная форма:
Рис. 3.3.9
Для корректировки доступны все поля, кроме поля «Вид спаренности». Если ранее уже вводились данные по АТС, то вид спаренности отобразится в данном поле.
Требования к заполнению полей изложены в пункте «Ввод справочника АТС».
При работе с экранной формой «Корректировка» доступны следующие клавиши:
<ESC> - возврат на предыдущий уровень с запросом о подтверждении выхода;
<F6> - сброс всех введенных данных и восстановление информации, присутствующей на момент начала корректировки;
<F7> - выход на пункт меню «Ввод и корректировка диапазона номеров, принадлежащих АТС», работа с которым описана ниже (см. пункт 3.3.4.).
Ввод диапазонов номеров, принадлежащих АТС
Работа с данным пунктом меню осуществляется для тех АТС, по которым был создан справочник АТС. Диапазон номеров для каждого вида номерной емкости в обычном случае определяется «верхней» и «нижней» границами. Например, для десятитысячной станции 256 диапазон номеров для вида номерной емкости «Телефон» будет выглядеть следующим образом:
Начало диапазона:Конец диапазона:
256 00 00256 99 99
Если у данной станции есть выносная станция (например, ПСК 2567 на одну тысячу номеров), то диапазон номеров для АТС 256 будет выглядеть так:
Начало диапазона:Конец диапазона:
56 00 00256 69 99
80 00256 99 99
Диапазон 256 70 00 - 256 79 99 будет описан как диапазон ПСК 2567, которая будет иметь собственный справочник АТС.
Если на станции имеется сверхномерная емкость, используемая для таксофонов и серийных номеров, то для них вводится свой диапазон номеров (при шестизначной нумерации на АТС сверхномерная емкость обычно шестизначная).
Если к мультиплексору НЦС на станции прикреплен конкретный диапазон номеров, то его также необходимо описать при вводе диапазонов номеров для АТС.
В начале работы появится экранная форма:
Рис. 3.3.10
Ввод реквизитов:
Вводится код АТС, для которой будет описываться диапазон станционных номеров.
После ввода в поле «АТС» появляется меню-подсказка для ввода в поле «Вид номерной емкости» (см. рис. 3.3.11.):
Рис. 3.3.11
Вид номерной емкости автоматически выберется из меню-подсказки и занесется в поле «Вид номерной емкости» экранной формы.
Вводится нижняя граница диапазона номеров для данного вида емкости.
Вводится верхняя граница диапазона номеров для данного вида емкости.
По этой клавише <F5> («Контроль») осуществляется проверка введенных диапазонов на соответствие монтированной емкости в ранее введенном справочнике АТС. После проверки в нижней строке экрана появляется сообщение или об успешном ее завершении, или - в случае обнаружения ошибки - диагностика по обнаруженным ошибкам.
После окончания ввода диапазонов следует нажать клавишу <ESC>, после чего появляется меню с предложением зафиксировать введенные данные в базах данных АСТУП.
Помимо клавиши <ESC> при работе с формой можно использовать функциональную клавишу <F6> - сброс всех введенных данных и восстановление информации, присутствующей на момент начала ввода.
Ввод схемы спаренности АТС
Работа с данным пунктом меню осуществляется для тех АТС, по которым предыдущим пунктом меню «Ввод справочника АТС» был создан справочник АТС.
В начале работы появится экранная форма (см. рис. 3.3.12.), для ввода реквизитов.
Рис. 3.3. 12
При вводе реквизитов по клавише <F6> выполняется сброс введенных значений.
Ввод реквизитов:
Вводится код АТС, для которой будет описываться схема спаренности. В случае, если схема спаренности заказывалась для АТС при вводе справочника АТС, ее можно либо конкретизировать, либо изменить данным пунктом меню.
После ввода в поле «АТС» номера АТС, в поле «Вид спаренности» появляется номер и название заказанной схемы спаренности при создании справочника АТС. Для того, чтобы изменить схему спаренности, необходимо ввести пробелы вместо номера схемы спаренности и нажать клавишу <RETURN>. На экране появится меню-подсказка для ввода в поле «Вид спаренности».
Принимаемые значения полей в классификаторе:
- на данной АТС нет спаренных номеров;
3 - номера можно спаривать любой с любым; нет понятия спаренного комплекта номеров.
4 - заказной вид спаренности
Для заказного вида спаренности всегда указывается диапазон номеров, в котором два соседних номера, начиная с нижней границы диапазона номеров, будут являться спаренным комплектом.
Это означает, что, например, для АТС 58 с видом спаренности 4 для диапазона номеров:
258 76 81 - 258 76 90
спаренными комплектами будут номера:
258 76 81 и 258 76 82
76 83 и 258 76 84
76 85 и 258 76 86
76 87 и 258 76 88
76 89 и 258 76 90
Практически это означает, что для номеров диапазонов
257 56 70 - 257 56 79
и
257 38 90 - 257 38 99
спаренные номера телефонов будут такими:
257 56 70 спарен с 257 38 90
56 7. с 257 38 9.
56 79 с 257 38 99
- номера спарены по сотням; например, на АТС 256 спарены 01 с 02; 47 с 58 сотни.
Практически это означает, что для номеров диапазонов
256 01 00 - 256 01 99
и
256 02 00 - 256 02 99
спаренные номера телефонов будут такими:
256 01 00 спарен с 256 02 00
01. с 256 02.
01 99 с 256 02 99
Для диапазонов
256 47 00 -256 47 99
и
58 00 -256 58 99
спаренные номера телефонов будут такими:
256 47 00 спарен с 256 58 00
47. с 256 58.
47 99 с 256 58 99
Номера, не вошедшие в диапазоны спаренности, будут индивидуальными;
7 - номера спарены по всем тысячам с 6 по 9 сотню в одном десятке по цифрам единиц.
Для диапазонов номеров:
257 06 00 -257 09 99
16 00 -257 19 99
26 00 -257 29 99
36 00 -257 39 99
46 00 -257 49 99
56 00 -257 59 99
66 00 -257 69 99
76 00 -257 79 99
86 00 -257 89 99
96 00 -257 99 99
номера будут спарены в одном десятке так:
257 06 00 спарен с 257 06 01
06 02 спарен с 257 06 03
06 04 с 257 06 05
06 06 с 257 06 07
06 08 с2 57 06 09
06 10 с 257 06 11 и т.д.
Номера во всех тысячах с 0 по 5 сотни будут индивидуальными;
8 - комбинация схем спаренности 5 (основная схема) и 4 (дополнительная схема);
9 - комбинация схем спаренности 6 (основная схема) и 4 (дополнительная схема).
В случае, если произошло изменение ранее введенной схемы спаренности (например, если схема спаренности была заказана ранее при создании справочника), на экране появляется меню с предложением зафиксировать введенные данные в базах данных АСТУП. Работа с данным меню описана выше.
При вводе значения 3 в поле «Вид спаренности» на экранной форме появляется поле с обязательными реквизитами для ввода «Диапазон спаренных телефонов».
Вводятся последовательно начальный и конечный номера диапазона спаренных номеров без первых цифр номера АТС столько раз, сколько необходимо для полного ввода всех спаренных номеров АТС.
После нажатия клавиши <ESC> ввод в поле «Диапазон спаренных номеров» заканчивается и на экране появляется меню с предложением зафиксировать введенные данные в базах данных АСТУП.
При вводе значения 5 в поле «Вид спаренности» на экранной форме появляется поле с обязательными реквизитами для ввода «Номера спаренных десятков».
Вводятся последовательно по два номера спаренных десятков столько раз, сколько на станции спарено десятков (из диапазона от 000 по 999 десятков).
После нажатия клавиши <ESC> ввод в поле «Номера спаренных десятков» заканчивается и на экране появляется меню с предложением зафиксировать введенные данные в базах данных АСТУП.
При вводе значения 6 в поле «Вид спаренности» на экранной форме появляется поле с обязательными реквизитами для ввода «Номера спаренных сотен».
Ввод в поле «Номера спаренных сотен».
Вводится последовательно по два номера спаренных сотен столько раз, сколько на станции спарено сотен (из диапазона от 00 по 99 сотню).
После нажатия клавиши <ESC> ввод в поле «Номера спаренных сотен» заканчивается и на экране появляется меню с предложением зафиксировать введенные данные в базах данных АСТУП. Работа с данным меню описана выше.
Для комбинированных схем спаренности 8 и 9 ввод осуществляется с дополнительным запросом: основная или дополнительная схема спаренности должна вводиться, а сам ввод осуществляется по указанным выше правилам.
Рис. 3.3.13
После фиксации ввода информации в указанные поля для значений схем спаренности 4,5,6,8,9, а также для схем спаренности со значениями 0,3,7, не требующих ввода дополнительных полей, производится выход на поле «АТС». Это поле предварительно очищается и оператору предлагается вводить схему спаренности для новой АТС. Нажатием клавиши <ESC> производится выход с подтверждением из пункта «Ввод схемы спаренности» на предыдущий уровень главного меню. Меню-подсказка для выхода по <ESC> описана выше.
Корректировка спаренных комплектов
Работа начинается с ввода номера АТС, для которой будет осуществляться просмотр и корректировка спаренных комплектов. После чего можно просмотреть спаренные комплекты (согласно указанной схеме спаренности) заданной АТС в экранной форме:
Рис. 3.3.14
Если оператор подведет курсор к выбранному спаренному комплекту и нажмет <F8>, то данный комплект будет удален из спаренных комплектов АТС; при этом номера, входящие в спаренный комплект, станут отдельными. Используя <F9>, можно добавить в общую схему спаренности новый спаренный комплект.
Данный пункт меню следует использовать крайне осторожно и только для телефонов из незадействованной станционной емкости.
По клавише <ESC> происходит завершение работы программы, если оператор находился в режиме ввода номера АТС, или возврат в поле редактирования, если оператор находился в режиме просмотра спаренных комплектов АТС.
Ведение станционной номерной емкости
Работа с данным пунктом меню осуществляется по следующей форме:
Рис. 3.3.15
Ввод реквизитов поиска:
Вводится номер АТС;
Вводится тип абонентской линии - код типа, наименование типа или пробел. Если в поле ввода введен пробел или неполное наименование, то после нажатия клавиши <RETURN> на экране появится форма для выбора типа линии (см. рис. 3.3.16).
Рис. 3.3.16
Тип линии автоматически выберется из меню-подсказки и занесется в поле «Тип абонентской линии» на экранной форме;
При задании как одиночного номера, так и диапазона, в поле состояние отобразится текущее состояние введенных типов и номеров абонентских линий. Оператору дается возможность изменить текущее состояние введенных абонентских линий.
При вводе в поле диапазон номеров по клавише <F5> происходит отображение диапазонов для введенного кода АТС (см. рис. 3.3.17.), по клавише <F6> очистка полей ввода.
Рис. 3.3.17
После окончания ввода информации по абонентским линиям появляется меню с предложением зафиксировать введенные данные в базах данных АСТУП (работа с данным меню описана выше), после этого в нижней части формы отобразятся номера (номер) из диапазона и, если изменение пройдет успешно, сообщение: выполнено успешно.
Оператор может изменять состояние только тех номеров абонентских линий, которые не установлены у абонентов, т.е. тех, которые находятся в ведении станции: свободных, проверочных, забронированных ТС, служебных, экспл. запас, неисправных, одноплечных, служебных. Состояние можно изменить так же в пределах этих текущих состояний, например: проверочный телефон сделать свободным и пр. В случае, если указанный номер абонентской линии принадлежит абоненту, будет выдано соответствующее предупреждение и выполнение операции будет прекращено.
Вид состояния автоматически выберется из меню-подсказки и занесется в поле «Состояние» экранной формы.
Рис. 3.3.18
По клавише <ESC> происходит завершение работы программы с запросом подтверждения о выходе.
Просмотр станционной номерной емкости
Работа с данным пунктом меню осуществляется по следующей форме:
Рис. 3.3.19
Ввод реквизитов поиска:
Вводится номер АТС в привычном для пользователя виде, без добавления кода ЛСЦ;
Вводится тип емкости - код типа, наименование типа или пробел. Если в поле ввода введен пробел или неполное наименование, то после нажатия клавиши <RETURN> на экране появится форма для выбора типа емкости (см. рис. 3.3.16).
Тип емкости автоматически выберется из меню-подсказки и занесется в поле «Тип емкости» экранной формы;
Вводится вид состояния - код вида состояния, наименование вида состояния или пробел. Если в поле ввода введен пробел или неполное наименование, то после нажатия клавиши <RETURN> на экране появится форма для выбора вида состояния (см. рис. 3.3.20.).
Рис. 3.3.20
Вид состояния автоматически выберется из меню-подсказки и занесется в поле «Состояние» на экранной форме;
Вводится вид подключения - код вида подключения, наименование вида подключения или пробел. Если в поле ввода введен пробел или неполное наименование, то после нажатия клавиши <RETURN> на экране появится форма для выбора вида подключения (см. рис. 3.3.21.).
Рис. 3.3.21
Вид подключения автоматически выберется из меню-подсказки и занесется в поле «Вид подключения» экранной формы.
При вводе обязательным параметром является номер АТС. Ввод остальных параметров лишь суживает условия поиска.
После ввода желаемых критериев поиска и нажатия клавиши <F9> в форме отобразится информация в двух колонках по следующему принципу: в первой колонке все виды станционной емкости или первое плечо спаренного комплекта; во второй колонке - второе плечо спаренного комплекта. В том и другом случае указывается номер и тип абонентской линии и ее станционное состояние.
После нажатия клавиши <ESC> происходит переход к вводу новых критериев поиска данных, если оператор просматривает найденные данные, или завершение работы программы, если оператор находится в режиме ввода критериев поиска.
Помимо клавиши <ESC> оператор может использовать <F6> для сброса введенных данных и восстановление информации, присутствующей на момент начала ввода.
Отчеты, справки
Данный пункт меню позволяет формировать различные виды отчетов. Выбор вида отчета осуществляется в экранной форме:
Рис. 3.3.22
Оператор должен подвести курсор к нужной строке и нажать <RETURN> для выбора вида отчета.
Отчет о свободной номерной емкости
Просмотр свободной емкости по АТС станционного участка (РУЭС), на который настроен пароль оператора, осуществляется в форме (см. рис. 3.3.23.).
Рис. 3.3.23
Ввод реквизитов поиска:
Вводится код АТС, для которой будет производится формирование отчета. Если оператор затрудняется в наборе кода АТС, то можно воспользоваться клавишей <F5>, по нажатию которой появляется подсказка о кодах АТС для ЛСЦ.
Код АТС не является обязательным параметром формирования отчета. Если в поле ввода оператор нажмет клавишу <RETURN>, то отчет о свободной номерной емкости будет формироваться по всем АТС, принадлежащим ЛСЦ.
После ввода кода АТС или нажатия <RETURN> на экране появляются найденные данные или выдается сообщение «Нет информации по заданному условию», отражающие результаты поиска для введенного кода АТС. Найденные данные выводятся по видам: НЦС; отдельные, спаренные (из них: полных комплектов и свободных плеч комплектов), таксофоны.
По клавише <ESC> происходит завершение работы программы и возврат в меню выбора вида отчета.
Отчет о задействованной емкости
Осуществляется просмотр задействованной емкости по АТС станционного участка (РУЭС), на который настроен пароль оператора (см. рис. 3.3.23.).
Ввод реквизитов поиска:
Вводится код АТС, для которой будет производится формирование отчета. Если оператор затрудняется в наборе кода АТС, то можно воспользоваться клавишей <F5>, по нажатию которой появляется подсказка о кодах АТС для ЛСЦ.
Код АТС автоматически выберется из меню-подсказки и занесется в поле «АТС» на экранной форме.
Рис. 3.3.24
После ввода кода АТС или нажатия <RETURN> на экране появляются найденные данные, отражающие результаты поиска для введенного кода АТС.
По клавише <ESC> происходит завершение работы программы и возврат в меню выбора вида отчета, если оператор находился в режиме ввода кода АТС, или переход в поле ввода кода АТС, если оператор находился в режиме просмотра сведений о задействованной емкости АТС.
Получение справки по номеру телефона
Просмотр информации о характеристике абонентской линии и ее владельце.
Критерии для формирования справки по номеру телефона задаются в форме (см. рис. 3.3.25.).
Рис. 3.3.25
Ввод реквизитов поиска:
вводится номер абонентской линии, по которой необходимо получить справку;
вводится тип абонентской линии - код типа, наименование типа или пробел.
Вводится адрес. Если по введенному адресу найдено несколько абонентов, то отображается их список и предлагается выбрать одного из них. Если у выбранного абонента несколько абонентских линий, то отображается список абонентских линий и предлагается выбрать одну из них, по которой необходимо получить справку.
После ввода номера и типа абонентской линии или адреса на экране появляется форма, отражающая сведения о запрошенной абонентской линии (см. рис. 3.3.26.).
Рис. 3.3.26
В форме просмотра данных по абонентской линии оператор может воспользоваться клавишами:
<F8> для просмотра информации о плательщике. У абонента может быть несколько плательщиков, которые оплачивают разные услуги. Если плательщиков несколько, то на экране появляется список плательщиков (см. рис. 3.3.27).
Рис. 3.3.27
С помощью клавиш КУК можно выбрать конкретного плательщика. Если плательщик один, то сразу отображаются его реквизиты (см. рис. 3.3.28.).
Рис. 3.3.28
При просмотре реквизитов плательщика по клавише <F5> можно просмотреть все расчетные счета выбранного плательщика (см. рис. 3.3.29.).
Рис. 3.3.29
В списке указывается код и наименование банка, номер расчетного счета, признак выставления и направление счета.
<F9> для просмотра линейных данных (см. рис. 3.3.30.).
По клавише <ESC> происходит завершение работы программы, если оператор находился в режиме ввода номера абонентской линии, или переход в поле ввода номера абонентской линии, если оператор находился в режиме просмотра информации о характеристике абонентской линии и ее владельце.
Рис. 3.3.30
Заключение
В настоящее время вся структура информации предприятий связи представляет собой разрозненные информационные массивы, описывающие те или иные структуры данных. Дополнительно к этому, обработка информации на разных предприятиях велась (или предполагалось что будет вестись) независимо друг от друга, на разных программно-технических комплексах и с использованием различных операционных систем и языков программирования:
При этом, надо отметить, что при имеющихся отличиях в структуре, подавляющее большинство информационных массивов являются общими для всех систем. Кроме того, основная часть базы данных НСИ, используемая всеми системами, является по сути, копией одной и той же информации, ввод которой производится автономно в каждой из систем.
Поскольку с АРМ каждой из систем происходит ввод (корректировка) только той части НСИ, информация по которой появляется в соответствующей системе, а изменения, вносимые любой из систем, должны учитываться другими системами предлагается следующее решение данного вопроса:
Для реализации предложений необходимо решение следующих вопросов:
Литература
Приложение 1
Текст программы
«../abon/abongl.4gl»
define pats record like astup:ats.*,record like astup:ats.*,char(13), kod_rej smallint,_vidats, old_vid, old_vidats char(25), nam_op char(15),_koda_op integer
###########################################################stanats(kodats) # kodats - код АТС
# Ведение классификатора АТС
###########################################################msg char(80), kodats, old_kod integer,, i, sw smallint,_ats, c_ats_op char(6)
let msg= «Поле не заполнено или заполнено неправильно»
OPEN WINDOW wstanats AT 3,2 WITH FORM»../stan/form/fstanats»(border, form line 1, prompt line last,line last)accept key control-kstanats_init()pats.koda=kodatsint_flag=trueBY NAME pats.koda, pats.nam, nam_vidats, pats.koda_op,.remark, pats.emk,.tel_nabor, pats.tax_nabor,.check_num, pats.tax_num,.date_apus, pats.koda_ncs, pats.emk_ncsDEFAULTSfield kodasyshelp (» Помощь»,» Сброс», «», «», «»)window is wstanatsold_kod=pats.kodaby name pats.koda attribute (reverse)
field kodapats.koda is null or pats.koda<=0 thenmsgfield kodaifc_ats=pats.kodaby name pats.kodapats.koda<>old_kod or old_kod is null thenkod_rej=0status=0error continue* into pats1.*astup:atskoda=pats.kodaerror stopstatus=notfound thenpats1.koda=pats.kodastanats_init()pats.koda=pats1.kodafield namifstatus<>0 thensyserror («ATS», status, «ЧТЕНИЕ АТС»)stanats_init()field kodapats1.code_adm<>g_code_adm then
error «АТС», pats.koda,» не принадлежит ЛСЦ»
call stanats_init()field kodaifkod_rej=0 thenstanats_found()ifif
if
field namsyshelp («»,» Сброс», «», «», «»)window is wstanatsby name pats.nam attribute (reverse)field namsw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.namfield kodaifpats.nam is null or pats.nam=» " thenmsgfield namifpats.nam=sys_l_to_u (pats.nam, 0)int_flag=false thenmsgifby name pats.nam
field nam_vidatssyshelp_enter (1, «Список»)window is wstanatsold_vidats=nam_vidatsby name nam_vidats attribute (reverse)field nam_vidatssw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name nam_vidatsfield namifnam_vidats=sys_l_to_u (nam_vidats, 0)int_flag=false thenmsgifold_vidats is null or old_vidats!=nam_vidatsnam_vidats is null or nam_vidats=» " thensysklas (0,0, «S27», nam_vidats, «»)pats.vidats, nam_vidatswindow is wstanatsaccept key control-kint_flag=false thennam_vidats=nullfield nam_vidatsififby name nam_vidats(pats.vidats)1nam_op= «Код опорной АТС»length (c_ats clipped)<3 then
error «Минимальный код АТС для выноса должен быть трехзначный»
next field kodaif2nam_op= «Код ком. узла»length (c_ats clipped)<3 then
error «Минимальный код АТС для выноса должен быть трехзначный»
next field kodaiflength (c_ats clipped)>3 then
error «Максимальный код основной АТС должен быть трехзначный»
next field kodaifnam_op=»»pats.koda_op=nullby name nam_op, pats.koda_opfield remarkcase
before field koda_opsyshelp_enter (0, «»)window is wstanatsold_koda_op=pats.koda_opby name nam_opby name pats.koda_op attribute (reverse)field koda_opsw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.koda_opfield nam_vidatsifold_koda_op is null or pats.koda_op is null or.koda_op <>old_koda_op thenkod_rej=0ifpats.koda_op is null or pats.koda_op<=0 or pats.koda_op>=pats.koda or.koda<pats.koda_op*10 thenpats.vidats=1 then«Неверен код опорной АТС»
else«Неверен код коммутаторного узла»
end iffield koda_opifc_ats_op=pats.koda_opplen=length (c_ats_op clipped)c_ats_op<>c_ats [1, plen] thenpats.vidats=1 then«Неверен код опорной АТС»
else«Неверен код коммутаторного узла»
end iffield koda_op
end if
# Проверим есть ли опорная
display by name pats.koda_opstatus=0error continuekoda into pats1.kodaastup:ats
# where koda=pats.koda_op and code_adm=g_code_adm and???koda=pats.koda_op and=0error stopstatus<>0 thenstatus=notfound then«Нет описания опорной АТС», pats.koda_opsyserror («ATS», status, «ЧТЕНИЕ ОПОРНОЙ АТС»)field koda_opififby name pats.koda_opfield remarksyshelp_enter (0, «»)window is wstanatsby name pats.remark attribute (reverse)field remarksw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.remarkpats.vidats!=0 thenfield koda_opfield nam_vidatsififby name pats.remark
field emkby name pats.emk attribute (reverse)field emksw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.emkfield remarkifpats.emk is null or pats.emk<=0 thenmsgfield emkifby name pats.emkkod_rej!=0 thenfield tel_naborif
before field tel_naborpats.tel_nabor is null thenpats.tel_nabor=7ifby name pats.tel_nabor attribute (reverse)field tel_naborsw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.tel_naborfield emkifpats.tel_nabor is null or.tel_nabor<6 or pats.tel_nabor>7 thenmsgfield tel_naborifby name pats.tel_naborfield tax_naborpats.tax_nabor is null thenpats.tax_nabor=6ifby name pats.tax_nabor attribute (reverse)field tax_naborsw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.tax_naborfield tel_naborifpats.tax_nabor is null or pats.tax_nabor=0 thenpats.tax_nabor=0pats.tax_num=0by name pats.tax_numpats.tax_nabor<4 or pats.tax_nabor>7 thenmsgfield tax_naborififby name pats.tax_nabor
field check_numby name pats.check_num attribute (reverse)field check_numpats.check_num is null thenpats.check_num=0ifsw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.check_numfield tax_naborif
{if pats.check_num=0 and pats.vidats=0 then
error «Количество проверочных телефонов не может быть равно 0»
next field check_numif}pats.check_num>=pats.emk then
error «Количество проверочных телефонов превышает емкость АТС»
next field check_numif
if pats.check_num<0 then«Количество проверочных телефонов меньше 0»
next field check_numif
by name pats.check_numpats.tax_nabor=0 thenfield date_apusiffield tax_numby name pats.tax_num attribute (reverse)field tax_numpats.tax_num is null thenpats.tax_num=0ifsw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.tax_numfield check_numif
pats.tax_num>=pats.emk then
error «Количество таксофонов превышает емкость АТС»
next field tax_numif
if pats.tax_num<0 then«Количество таксофонов меньше 0»
next field tax_numif
by name pats.tax_num
field date_apusby name pats.date_apus attribute (reverse)field date_apusby name pats.date_apussw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenpats.tax_nabor=0 thenfield check_numfield tax_numififfield koda_ncsby name pats.koda_ncs attribute (reverse)field koda_ncssw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.koda_ncsfield date_apusifpats.koda_ncs<=0 thenmsgfield pats.koda_ncsifby name pats.koda_ncspats.koda_ncs is null thenpats.emk_ncs=nullby name pats.emk_ncsl_fixiffield emk_ncsby name pats.emk_ncs attribute (reverse)field emk_ncssw=fgl_lastkey()sw=fgl_keyval («up») or sw=fgl_keyval («left») thenby name pats.emk_ncsfield koda_ncsifpats.emk_ncs<=0 or pats.emk_ncs is null thenmsgfield emk_ncsifby name pats.emk_ncs
l_fix: call menu_fix() returning swaccept key control-kwindow is wstanatssw=1 theninputifint_flag=false thenfield namifstanats_mod() thenprej= «КОРРЕКТИРОВКА»kod_rej=1by name prej attribute (reverse)syshelp («»,» Сброс», «ДиапазНом», «», «»)window is wstanatsiffield kodakey(f6)infield(koda) thensysats_disp (g_code_adm) returning pats.koda, pats.namwindow is wstanatsaccept key control-kint_flag=false thenfield kodaifby name pats.kodastatus=0error continue* into pats1.*astup:atskoda=pats.kodaerror stopstatus<>0 thensyserror («ATS», status, «ЧТЕНИЕ АТС»)stanats_init()field kodastanats_found()c_ats = pats.kodafield namififkey(f7)stanats_init()old_kod=nullpats.koda=kodatsby name nam_vidatsfield kodakey(f8)kod_rej=1 thensw=nullstandiap (pats.koda)syshelp («»,» Сброс», «ДиапазНом», «», «»)window is wstanatsaccept key control-kif
key (escape, interrupt)menu_exit()accept key control-kint_flag=false theninputifinputwindow wstanatsfunction
###############################################################stanats_init()
###############################################################syshelp («»,» Сброс», «», «», «»)syshelp_enter (0, «»)window is wstanatspats.* to nullkod_rej=0
let prej= «В В О Д»
let nam_vidats=»»nam_op=»»pats.vidsp=0by name prej attribute (reverse)by name pats.nam, nam_vidats, pats.emk, pats.remark,.tax_num, pats.check_num,_op, pats.koda_op, pats.tel_nabor,.tax_nabor, pats.date_apus, pats.emk_ncs, pats.koda_ncsfunction
###############################################################stanats_found()
###############################################################pats.*=pats1.*kod_rej=1prej= «КОРРЕКТИРОВКА»syshelp («»,» Сброс», «ДиапазНом», «», «»)window is wstanatsby name prej attribute (reverse)nam_vidats=sysklas_read («S27», pats.vidats)(pats.vidats)1nam_op= «Код опорной АТС»2nam_op= «Код ком. узла»nam_op=»»pats.koda_op=nullcase
by name pats.nam, nam_vidats, pats.emk, pats.remark,.tax_num, pats.check_num,_op, pats.koda_op,.tel_nabor, pats.tax_nabor,.date_apus, pats.koda_ncs, pats.emk_ncsfunction
###############################################################stanats_mod()
###############################################################pats.code_adm=g_code_admpats.vidats=0 thenpats.koda_op=pats.kodaifWORKerror continuestatus=0code_adm into pats1.code_adm from astup:atskoda=pats.kodastatus=0 thenpats1.code_adm<>g_code_adm then
error «АТС не принадлежит», g_adm
ROLLBACK WORKerror stopfalseifastup:ats set:ats.*=pats.*koda=pats.kodastatus<>notfound thensyserror («ATS», status, «ЧТЕНИЕ АТС»)WORKerror stopfalseifinto astup:ats(pats.*)iferror stopstatus<>0 thensyserror («ATS», status, «ОБНОВЛЕНИЕ АТС»)WORKfalseifWORKtruefunction
Приложение 2
Функциональные модули, используемые программой
#################################################################
# syshelp # Подсказка по функциональным клавишам
#################################################################syshelp_open() # Открытие окна функциональных клавиш
#################################################################window win_help at 23,1 with 2 rows, 79 columns«ESC» AT 1,1«F5» AT 1,15«F6» AT 1,28«F7» AT 1,41«F8» AT 1,54«F9» AT 1,66«Выход» AT 1,4 ATTRIBUTE (REVERSE)syshelp(«», «», «», «», «»)function
#################################################################syshelp (kl6, kl7, kl8, kl9, kl10) # Инициализация клавиш
#################################################################kl6, kl7, kl8, kl9 char(10), kl10 char(10)
current window is win_help«» AT 2,1kl6 AT 1,17 ATTRIBUTE (REVERSE)kl7 AT 1,30 ATTRIBUTE (REVERSE)kl8 AT 1,43 ATTRIBUTE (REVERSE)kl9 AT 1,56 ATTRIBUTE (REVERSE)kl10 AT 1,69 ATTRIBUTE (REVERSE)FUNCTION
#################################################################syshelp_close() # Закрытие окна функциональных клавиш
#################################################################window win_helpfunction
#######################################################################syserror_msg (pnam_table, pstatus, pmessage)
# Формирование системных сообщений
# Вход: имя таблицы,
# статус (код ошибки)
# сообщение или краткое описание действий над таблицей,
# доступное для рядового пользователя
#######################################################################
define pnam_table char(12),
pstatus integer,char(50),char(80)pmsg=»»(pstatus)0100pmsg=pnam_table clipped,
«.Не найдена информация при:», pmessage
when -258
let pmsg=pnam_table clipped,
«.Блокирование информации при:», pmessage
when -284
let pmsg=pnam_table clipped,
«.Дублирование информации при:», otherwisepmessage<>» " then pmessage
pmsg=pnam_table clipped,
«.Ошибка», pstatus,» при:», pmessagepnam_table clipped,
«.Системная ошибка», pstatus,».Обратитесь к администратору БД»
end ifcasepmsgfunction
#######################################################################syserror (pnam_table, pstatus, pmessage)
# Выдача системных сообщений в строке ERROR LINE
# Вход: имя таблицы,
# статус (код ошибки)
# сообщение или краткое описание действий над таблицей,
# доступное для рядового пользователя
# НАПРИМЕР:
# call syserror («UDK», status, «ПОИСК ОЧЕРЕДНИКА рег.номер 999999
# call syserror («LIST_ABON», status, «ДОБАВЛЕНИЕ В СПИСОК НА УСТА
# call syserror («A2», status, «ПОИСК АБОНЕНТА ПО…»
# call syserror («CONNECT», status, «ДОБАВЛЕНИЕ УСТР-ВА»
#######################################################################pnam_table char(12),integer,char(50),char(80)pmsg=syserror_msg (pnam_table, pstatus, pmessage) pmsg
end function
////////////////////////////////////////////////////////////////////////
проверка на циферность
строка не должна содержать серединных пробелов и никаких символов кроме цифр
-syschdgt (cP_str)_str CHAR(10),, end_i,_was_symbol_flag SMALLINT
int_flag=TRUEiV_was_symbol_flag=FALSE
- удаляю начальные пробелы
LET i=1
WHILE (cP_str [i, i]=»») AND (length (cP_str)>1)end_i=length (cP_str)cP_str=cP_str [i+1, end_i]WHILEcP_str=» " THENint_flag=FALSE«»IF(length (cP_str)=1) AND cP_str [1,1] NOT MATCHES «[0123456789]» THENint_flag=FALSEint_flag=FALSEcP_strIF
i=1 TO length (cP_str) cP_str[i] =» " THEN - встретилась не цифра
LET iV_was_symbol_flag=TRUEIF(cP_str[i] MATCHES «[0123456789]») AND
(iV_was_symbol_flag=TRUE) THENint_flag=FALSEFORIF(cP_str[i] NOT MATCHES «[0123456789]») THENint_flag=FALSEFORIF
FOR
cP_strFUNCTION
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Диплом
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2017 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ