Биллинговые системы для IP-телефонии

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

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

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

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

Влияние на иммунную систему

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

Влияние на сердечно-сосудистую систему

Сердечно-сосудистая система крайне восприимчива к воздействию ЭМИ, которое способствует возникновению нарушений в частоте пульса и показаниях артериального давления, а также увеличивает вязкость крови и изменяет ее состав.

Влияние на половую систему

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

9.4 Меры защиты от ЭМИ

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

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

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

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

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

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

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

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

9.5 Рекомендации для безопасной работы за ПЭВМ

На рабочем месте оператора ПЭВМ, как правило, отсутствуют источники мощного излучения. Тем не менее, обилие бытовых приборов и вычислительной техники создает значительный электромагнитный фон, воздействие которого неблагоприятно для здоровья и работоспособности людей. Поэтому крайне важно применять нижеперечисленные меры защиты:

- Грамотно размещать мебель и технику в зонах работы и отдыха. Оптимальным является расстояние в 2-3 м от ближайшего распределительного щита или силового кабеля. Рекомендуемое пространство между задними частями видеомониторов - 2 м, между боковыми частями - не менее 1,2 м;

- Осуществлять в работе за компьютером каждые 2 часа перерывы продолжительностью 15-20 минут;

- Не располагать в непосредственной близости от рабочих мест микроволновые печи и холодильники;

- По возможности не располагать несколько электроприборов рядом, поскольку воздействие пересекающихся электромагнитных полей более вредно. Безопасным считается расстояние в 1,5 м;

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

Заключение

В результате выполнения дипломного проекта была разработана подсистема динамической маршрутизации звонков в сети IP-телефонии, необходимость применения которой была выявлена при изучении функциональных возможностей биллинговой системы IP Studio AMBS, используемой компанией-оператором связи ООО "ГЛОБАЛСАТ".

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

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

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

Список использованной литературы

1. Росляков А.В. IP-телефония / А.В. Росляков, М.Ю. Самсонов, И.В. Шибаева. - М.: Эко-Трендз, 2003. - 252 с.

2. Олифер В.Г. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 4-е изд. / В.Г. Олифер, Н.А. Олифер. - СПб.: Питер, 2010. - 944 с.

3. IP Studio Inc. Описание IP Studio AMBS [Электронный ресурс] / Режим доступа: http://www.ipstudio.net/index.php?option=com_content&task=view&id=69&Itemid=140, свободный. - (Дата обращения: 29.04.2015).

4. Биллинговая система ExpertBilling. Технологии. RADIUS - служба удаленной аутентификации входящих звонков пользователей [Электронный ресурс] / Режим доступа: http://expertbilling.ru/page/radius.html, свободный. - (Дата обращения: 29.04.2015).

5. Издание CNews. MERA Systems: Решения для VoIP-операторов [Электронный ресурс] / Режим доступа: http://www.cnews.ru/reviews/free/voip/s/mera/#transit, свободный. - (Дата обращения: 29.04.2015).

6. Библиотека официальной технической документации MSDN Microsoft. Интерфейс ODBC. [Электронный ресурс] / Режим доступа: https://msdn.microsoft.com/ru-ru/library/s9ds2ktb.aspx, свободный. - (Дата обращения: 10.04.2015).

7. Фиайли К. SQL / К. Фиайли: Пер. с англ. - М.: ДМК Пресс, 2003. - 456 с.

8. Грофф Дж. SQL: Полное руководство / Дж. Грофф, П. Вайнберг: Пер. с англ. - 2-е изд., перераб. и доп. - К.: Издательская группа BHV, 2001. - 816 c.

9. Библиотека официальной технической документации MSDN Microsoft. Microsoft.VisualBasic - пространство имен. [Электронный ресурс] / Режим доступа: https://msdn.microsoft.com/ru-ru/library/Microsoft.VisualBasic(v=vs.110).aspx, свободный. - (Дата обращения: 09.04.2015).

10. Гандерлой М. Автоматизация Microsoft Access с помощью VBA / М. Гандерлой, С.С. Харкинз: Пер. с англ. - М.: Издательский дом "Вильямс", 2006. - 416 с.

11. Тимошок Т.В. Microsoft Access 2003. Самоучитель / Т.В. Тимошок. - М.: Издательский дом "Вильямс", 2004. - 464 с.

12. Служба поддержки Microsoft. Microsoft Access. [Электронный ресурс] / Режим доступа: http://support.microsoft.com/ru-ru/kb/831858/ru, свободный. - (Дата обращения: 11.04.2015).

13. Гультяев А.К. Проектирование и дизайн пользовательского интерфейса / А.К. Гультяев, В.А. Машин. - М.: Корона-Принт, 2007. - 352 с.

14. Кузьменко В.Г. Программирование на VBA 2002 / В.Г. Кузьменко. - М.: ООО "Бином-Пресс", 2003. - 880 с.

15. Трудовой кодекс Российской Федерации от 30 декабря 2001 г. № 197-ФЗ // Собрание законодательства Российской Федерации. - 2002. - № 1 (часть I) ст. 3. - Ст. 209.

16. Российская энциклопедия по охране труда: В 3-х т. / Рук. проекта М.Ю. Зурабов; Отв. ред. А.Л. Сафонов. - 2-е изд., перераб. и доп. - М.: Издательство НЦ ЭНАС, 2007.

17. Кудряшов Ю.Б. Радиационная биофизика: радиочастотные и микроволновые электромагнитные излучения. Учебник для ВУЗов / Ю.Б. Кудряшов, Ю.Ф. Перов, А.Б. Рубин. - М.: ФИЗМАТЛИТ, 2008. - 184 с.

Приложение 1. Содержимое внешнего модуля

Public Function RatesExtrapolation(RateApproxMode As Integer) As Integer

' Экстраполяция тарифов в матрице консолидированного предл-я Offer_Consolidated

' от старших префиксов к младшим (от коротких к длинным)

' RateApproxMode - режим экстраполяции тарифов:

' RateApproxMode = 1 - по Prefix без ограничений

' RateApproxMode = 2 - с ограничениями по типу Prefix (используется вспомогательный справочник Offer_Consolidated_Dest)

Const Process As String = "Экстраполяция тарифов " 'заголовок процесса

Dim DB As Database 'текущая база данных

Dim rsExt As Recordset 'рекордсет основной матрицы

Dim rsInt As Recordset 'рекордсет для определения границ экстраполяции

Dim rstParent As Recordset 'рекордсет "родительской" мини-матрицы

Dim MinPrefix As String, MaxPrefix As String 'границы отрезка экстраполяции

Dim MyApproxGrp As String 'критерий экстраполяции

Dim i As Long, k As Integer 'счетчики записей и столбцов

Dim TotalRec As Long, TotalFld As Long 'границы основной матрицы

Dim MySQL As String, FldName As String, Crit As String 'контекстные переменные

Dim FLD As Field 'текущее поле

RatesExtrapolation = 0

Set DB = CurrentDb

Set rsExt = DB.OpenRecordset("Offer_Consolidated", dbOpenSnapshot)

'Подсчет кол-ва рабочих столбцов в матрице консолидированного предл-я

TotalFld = -1

For Each FLD In rsExt.Fields

TotalFld = TotalFld + 1

Next

'Сканирование столбцов

k = 0

For Each FLD In rsExt.Fields

FldName = FLD.Name

If FldName <> "Prefix" Then

k = k + 1

'Определение минимальной длины префикса, мин и макс префикса

MySQL = "SELECT Min(Len(Offer_Consolidated_Dest.Prefix)) AS MinLen, Min(Offer_Consolidated_Dest.Prefix) AS MinPrefix, Max(Offer_Consolidated_Dest.COUNTRY_CODE)+1 AS MaxPrefix FROM Offer_Consolidated INNER JOIN Offer_Consolidated_Dest ON Offer_Consolidated.Prefix = Offer_Consolidated_Dest.Prefix WHERE Not [" + FldName + "] Is Null;"

If TableSize(MySQL) = 0 Then

MinPrefix = ""

MaxPrefix = ""

Else

Set rsInt = DB.OpenRecordset(MySQL, dbOpenSnapshot)

rsInt.MoveFirst

MinLenPrefix = rsInt("MinLen")

MinPrefix = rsInt("MinPrefix")

MaxPrefix = rsInt("MaxPrefix")

rsInt.Close

End If

'Сканирование рабочих записей данного столбца

Select Case RateApproxMode

Case 1:

MySQL = "SELECT Prefix, [" + FldName + "] AS Rate FROM Offer_Consolidated WHERE Prefix Between '" + MinPrefix + "' And '" + MaxPrefix + "' AND [" + FldName + "] Is Null ORDER BY Prefix DESC;"

Case 2:

MySQL = "SELECT Offer_Consolidated_Dest.COUNTRY_CODE + Offer_Consolidated_Dest.DEST_TYPE AS ApproxGrp, Offer_Consolidated_Dest.Prefix, [" + FldName + "] AS Rate FROM Offer_Consolidated INNER JOIN Offer_Consolidated_Dest ON Offer_Consolidated.Prefix = Offer_Consolidated_Dest.Prefix WHERE Offer_Consolidated_Dest.Prefix Between '" + MinPrefix + "' And '" + MaxPrefix + "' AND [" + FldName + "] Is Null ORDER BY Offer_Consolidated_Dest.Prefix DESC;"

End Select

TotalRec = TableSize(MySQL)

If TotalRec > 0 Then

'инициация индикатора

V = SysCmd(acSysCmdInitMeter, Process + " - " + CStr(k) + "/" + CStr(TotalFld) + " (" + CStr(TotalRec) + ")", TotalRec)

'получатель

Set rsInt = DB.OpenRecordset(MySQL, dbOpenDynaset)

'источник

Select Case RateApproxMode

Case 1:

'экстраполяция без ограничений

MySQL = "SELECT Prefix, [" + FldName + "] AS Rate FROM Offer_Consolidated WHERE Not [" + FldName + "] Is Null ORDER BY Prefix DESC;"

Case 2:

'экстраполяция с ограничениями по типу префикса

MySQL = "SELECT Offer_Consolidated_Dest.COUNTRY_CODE+Offer_Consolidated_Dest.DEST_TYPE AS ApproxGrp, Offer_Consolidated_Dest.Prefix, [" + FldName + "] AS Rate FROM Offer_Consolidated INNER JOIN Offer_Consolidated_Dest ON Offer_Consolidated.Prefix = Offer_Consolidated_Dest.Prefix WHERE Not [" + FldName + "] Is Null ORDER BY Offer_Consolidated_Dest.Prefix DESC;"

End Select

Set rstParent = DB.OpenRecordset(MySQL, dbOpenSnapshot)

i = 1

rsInt.MoveFirst

Do Until rsInt.EOF

MyPrefix = rsInt("Prefix")

CurLenPrefix = Len(MyPrefix)

If RateApproxMode > 1 Then MyApproxGrp = rsInt("ApproxGrp")

Do While CurLenPrefix > MinLenPrefix

CurLenPrefix = CurLenPrefix - 1

MyPrefix = Left(MyPrefix, CurLenPrefix)

Crit = "Prefix='" + MyPrefix + "'"

If RateApproxMode > 1 Then Crit = Crit + " AND ApproxGrp='" + MyApproxGrp + "'"

rstParent.FindFirst Crit

If Not rstParent.NoMatch Then

rsInt.Edit

rsInt("Rate") = rstParent("Rate")

rsInt.Update

Exit Do

End If

Loop

' обновление индикатора

V = SysCmd(acSysCmdUpdateMeter, i)

i = i + 1

rsInt.MoveNext

Loop

rstParent.Close

rsInt.Close

V = SysCmd(acSysCmdRemoveMeter)

End If

End If

Next

rsExt.Close

DB.Close

End Function

Public Function Route_List(tblNameIN As String, tblNameOUT As String, MaxRow As Integer) As Integer

' Формирование таблицы LCR (Least Cost Routing)

' tblNameIN - имя таблицы исходных данных

' tblNameOUT - имя таблицы результатов

' MaxRow - кол-во маршрутов в выходной таблице (не более 10)

' Описание используемых переменных

Const Process As String = "Формирование LCR " 'заголовок индикатора процесса

Dim DB As Database 'текущая база данных

Dim FLD As Field 'текущее поле

Dim rsIN As Recordset, rsOUT As Recordset 'рекордсеты вх и вых таблиц

Dim i As Long, TotalRec As Long 'счетчик и общее число записей

Dim RouteList(1 to 10) As String 'список маршрутов

Dim RateList(1 to 10) As Integer 'список тарифов

Dim j As Integer, k As Integer 'счетчики маршрутов (j,k=1..MaxRow)

Dim isNewRoute As Boolean 'признак нового маршрута

' Инициация переменных

Route_List = 0

Call ClearTable(tblNameOUT)

Set DB = CurrentDb

Set rsIN = DB.OpenRecordset(tblNameIN, dbOpenSnapshot)

Set rsOUT = DB.OpenRecordset(tblNameOUT, dbOpenDynaset)

' Инициация индикатора

rsIN.MoveLast

TotalRec = rsIN.RecordCount 'подсчет кол-ва записей входной таблицы

V = SysCmd(acSysCmdInitMeter, Process + " - " + CStr(TotalRec), TotalRec)

i = 1

rsIN.MoveFirst

' Организация цикла по всем записям (префиксам)

Do Until rsIN.EOF

' инициация Списков тарифов и маршрутов

For k = 1 To MaxRow

RateList(k) = 999

RouteList(k) = ""

Next

' Выбор маршрутов в порядке возрастания их тарифов

For k = 1 To MaxRow

For Each FLD In rsIN.Fields

If FLD.Name <> "Prefix" And (Not IsNull(FLD.Value)) Then

' маршрут новый? (не использован на ранних выборах)

isNewRoute = True

For j = 1 To k

If FLD.Name = RouteList(j) Then isNewRoute = False

Next j

If (FLD.Value < RateList(k)) And isNewRoute Then

RateList(k) = FLD.Value

RouteList(k) = FLD.Name

End If

End If

Next

Next k

' запись результата поиска в выходную таблицу

If RateList(1) < 999 Then

rsOUT.AddNew

rsOUT("Prefix") = rsIN("Prefix")

For k = 1 To MaxRow

If RateList(k) < 999 Then

rsOUT("Rate" + CStr(k)) = RateList(k)

rsOUT("Route" + CStr(k)) = RouteList(k)

End If

Next k

rsOUT.Update

End If

' обновление индикатора процесса

i = i + 1

V = SysCmd(acSysCmdUpdateMeter, i)

rsIN.MoveNext

Loop 'rsIN

V = SysCmd(acSysCmdRemoveMeter)

rsIN.Close

rsOUT.Close

DB.Close

End Function

Приложение 2. Содержимое модуля формы

Option Compare Database

Private Sub Form_Open(Cancel As Integer)

Dim DB As Database

'Сокрытие окна БД и формирование заголовка приложения

Set DB = CurrentDb

DB.Properties("StartUpShowDBWindow") = False

'Получение имени папки запуска приложения (для временных файлов БД)

StartPath = DBEngine.Workspaces(0).Databases(0).Name

While Right(StartPath, 1) <> "\": StartPath = Left(StartPath, Len(StartPath) - 1): Wend

'Обнуление индикатора

V = SysCmd(acSysCmdRemoveMeter)

'Установка фокуса на 1-й кнопке

Me!btnDownload.SetFocus

End Sub

Private Sub btnCallStat_Click()

Const Process As String = "Загрузка статистики соединений"

Dim DB As Database

Dim QD As QueryDef

'Проверка наличия связи с сервером

If TableSize("isConnect") < 0 Then MsgBox PMsgNoConnect, vbExclamation, Process: Exit Sub

'Запрос подтверждения операции

If MsgBox(PMsgDoAction, vbQuestion + vbYesNo, Process) = vbNo Then Exit Sub

'Загрузка статистики соединений в AMBS_tmp_Term_Stat

V = SysCmd(acSysCmdSetStatus, Process)

BegDate = Me!DatеStart ' начальная дата выборки

EndDate = Me!DatеEnd ' конечная дата выборки

MinAttempt = Me!MinAtt ' мин число попыток соединений по каждому направлению

MinASR = Me!Min_ASR ' минимальный ASR

MinACD = Me!Min_ACD ' минимальный ACD

Set DB = CurrentDb

DB.Execute "DELETE * FROM Tmp_Term_Stat;"

Set QD = DB.QueryDefs("qryAMBS_CDR_Stat_add"): QD.Execute: QD.Close ' выборка без фильтров MinASR и MinACD

Set QD = DB.QueryDefs("qryAMBS_CDR_Stat_del"): QD.Execute: QD.Close ' удаление по фильтрам MinASR и MinACD

V = SysCmd(acSysCmdRemoveMeter)

DB.Close

MsgBox PMsgComplete, vbInformation, Process

End Sub

Private Sub btnDownload_Click()

Const Process As String = "Загрузка тарифов из AMBS"

Dim DB As Database

Dim QD As QueryDef

Dim TotalRecOld As Long 'число записей в буфере до загрузки

Dim TotalRecNew As Long 'число записей в буфере после загрузки

'Проверка наличия связи с сервером

If TableSize("isConnect") < 0 Then MsgBox PMsgNoConnect, vbExclamation, Process: Exit Sub

'Запрос подтверждения операции

If MsgBox(PMsgDoAction, vbQuestion + vbYesNo, Process) = vbNo Then Exit Sub

Set DB = CurrentDb

TotalRecOld = TableSize("Offer_Consolidated_Item")

If TotalRecOld > 0 Then

If MsgBox("Найдено записей в буфере загрузки: " + CStr(TotalRecOld) + EOL() + EOL() + "Удалить предыдущую загрузку?", vbQuestion + vbYesNo, Process) = vbYes Then

DB.Execute "DELETE * FROM Offer_Consolidated_Item;"

End If

End If

'Выборка актуальных тарифов из БД сервера и загрузка в Offer_Consolidated_Item

V = SysCmd(acSysCmdSetStatus, Process)

CurDate = Me!DateSelect ' выборка тарифов, активных на дату

MyPrefix = CStr(Me!PrefixMask) + "*" ' маска телефонного кода

MyVolume = Me!RateUSD ' Курс для тарифов в USD

Set QD = DB.QueryDefs("qryAMBS_Rates_Add"): QD.Execute: QD.Close

TotalRecNew = TableSize("Offer_Consolidated_Item")

V = SysCmd(acSysCmdRemoveMeter)

DB.Close

MsgBox PMsgComplete + EOL() + EOL() + "Добавлено записей в буфер: " + CStr(TotalRecNew - TotalRecOld), vbInformation, Process

End Sub

Private Sub btnLCR_Click()

Const Process As String = "Формирование таблицы LCR"

Const TmpDB As String = "TmpRoute0.mdb"

Dim WS As Workspace

Dim DB As Database, TempDB As Database

Dim QD As QueryDef

Dim MaxRow As Integer

Dim TmpFile As String

'Проверка наличия исходных данных

If TableSize("Offer_Consolidated_Item") = 0 Then MsgBox "Не загружены тарифы!", vbCritical, Process: Exit Sub

'Запрос подтверждения операции

If MsgBox(PMsgDoAction, vbQuestion + vbYesNo, Process) = vbNo Then Exit Sub

'Удаление файла временной БД, хранящей старую версию Offer_Consolidated

TmpFile = StartPath & TmpDB

Kill TmpFile

btnUpload.SetFocus

btnLCR.Enabled = False

Set DB = CurrentDb

Set WS = Workspaces(0)

'Создание новой временной БД для формирования Offer_Consolidated

Set TempDB = WS.CreateDatabase(TmpFile, dbLangGeneral)

'Создание сводной матрицы тарифов Offer_Consolidated из Offer_Consolidated_Item

V = SysCmd(acSysCmdSetStatus, Process & " : сводной матрицы тарифов")

DB.Execute "SELECT * INTO Offer_Consolidated IN '" + TmpFile + "' FROM qryAMBS_Rates_Consolidated;"

'Создание локального справочника направлений Offer_Consolidated_Dest

V = SysCmd(acSysCmdSetStatus, Process & " : создание справочника типов направлений")

DB.Execute "DELETE * FROM Offer_Consolidated_Dest;"

Set QD = DB.QueryDefs("qryAMBS_Rates_Dest_Add"): QD.Execute: QD.Close

'Экстраполяция тарифов в Offer_Consolidated по выбранному методу

If grpPrefixApproxMode > 0 Then

Call RatesExtrapolation(grpPrefixApproxMode)

End If

'Создание списка маршрутов Route_List из Offer_Consolidated

MaxRow = Me!MaxRow 'предельное количество выбранных маршрутов

Call Route_List("Offer_Consolidated", "Route_List", MaxRow)

'Создание таблицы маршрутов Route_Param из Route_List (текстовые поля)

V = SysCmd(acSysCmdSetStatus, Process & " : создание таблицы маршрутов")

DB.Execute "DELETE * FROM Route_Param;"

Set QD = DB.QueryDefs("qryRoute_Param_Add"): QD.Execute: QD.Close

TempDB.Close

DB.Close

V = SysCmd(acSysCmdRemoveMeter)

btnLCR.Enabled = True

DoCmd.OpenTable "Route_Param", acViewNormal

MsgBox PMsgComplete, vbInformation, Process

End Sub

Private Sub btnRateBlock_Click()

Const Process As String = "Блокировка нерабочих предложений"

Dim DB As Database

Dim QD As QueryDef

'Проверка наличия связи с сервером

If TableSize("isConnect") < 0 Then MsgBox PMsgNoConnect, vbExclamation, Process: Exit Sub

'Запрос подтверждения операции

If MsgBox(PMsgDoAction, vbQuestion + vbYesNo, Process) = vbNo Then Exit Sub

'Блокировка тарифов нерабочих напр-й в AMBS_RATES на основе AMBS_tmp_Term_Stat

V = SysCmd(acSysCmdSetStatus, Process)

Set DB = CurrentDb

Set QD = DB.QueryDefs("qryAMBS_Rates_Block"): QD.Execute: QD.Close

V = SysCmd(acSysCmdRemoveMeter)

DB.Close

MsgBox PMsgComplete, vbInformation, Process

End Sub

Private Sub btnStatEdit_Click()

DoCmd.OpenTable "Tmp_Term_Stat", acViewNormal

End Sub

Private Sub btnUpload_Click()

Const Process As String = "Выгрузка маршрутов"

Dim DB As Database

Dim QD As QueryDef

'Проверка наличия связи с сервером

If TableSize("isConnect") < 0 Then MsgBox PMsgNoConnect, vbExclamation, Process: Exit Sub

'Запрос подтверждения операции

If MsgBox(PMsgDoAction, vbQuestion + vbYesNo, Process) = vbNo Then Exit Sub

V = SysCmd(acSysCmdSetStatus, Process)

Set DB = CurrentDb

'Создание таблицы маршрутов Route_Param из Route_List

V = SysCmd(acSysCmdSetStatus, Process & " : оцифровка направлений и маршрутов")

Set QD = DB.QueryDefs("qryRoute_Param_Upd"): QD.Execute: QD.Close

'Удаление старых маршрутов из AMBS_rparam

V = SysCmd(acSysCmdSetStatus, Process & " : удаление старых маршрутов на сервере")

Set QD = DB.QueryDefs("qryAMBS_Routes_del"): QD.Execute: QD.Close

'Выгрузка новых маршрутов в AMBS_rparam

V = SysCmd(acSysCmdSetStatus, Process & " : добавление новых маршрутов на сервер")

Set QD = DB.QueryDefs("qryAMBS_Routes_Upload"): QD.Execute: QD.Close

V = SysCmd(acSysCmdRemoveMeter)

DB.Close

MsgBox PMsgComplete, vbInformation, Process

End Sub

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


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

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