- •Корпоративные информационные системы. Задача интеграции. Корпоративные системы.
- •Модель osi – набор стандартов для построения корпоративной системы
- •Интегрированные и комплексные приложения
- •Задача: общие данные, общие процедур, общие вычислительные ресурсы.
- •Проблемы на пути интеграции
- •Прозрачность. Открытость. Масштабируемость. Концепции аппаратных решений. Определение распределенной системы. Прозрачность.
- •Открытость.
- •Масштабируемость.
- •Raid-технологии.
- •Параллелизм.
- •Концепции аппаратных решений. Мультипроцессоры.
- •Гетерогенные мультикомпьютерные системы.
- •Симметричное мультипроцессирование
- •Кластеры.
- •Двухуровневые, трехуровневые, распределенные одноранговые информационные системы. Виды ис
- •Функциональная нагрузка компонентов в ис
- •Двухуровневые архитектуры
- •Трехуровневые архитектуры
- •Распределенные одноранговые архитектуры
- •Единое информационное пространство. Подход к построению объектно-ориентированной одноранговой информационной системе.
- •Архитектура взаимодействия компонент распределенной ис
- •Обзор методов интеграции. Введение
- •Пути устранения аппаратных различий, кросс – платформенные приложения.
- •Java applets, апплеты.
- •Файлы (буферы) общего доступа.
- •Единый язык доступа к данным (sql).
- •Обмен сообщениями (dde).
- •Удаленный вызов процедур (rpc)
- •Вставка и внедрение объектов
- •Ole (связывание и внедрение объектов), ole Automation.
- •Классификация приложений по отношению к технологии ole (com).
- •ActiveX объекты.
- •Идентификация com объектов.
- •Сравнение com (ActiveX) объектов и java апплетов.
- •Доступ к удаленным объектам (dcom, .Net, corba)
- •Использование командных файлов и скриптов
- •Доступ к базам данных (ado, dao, odbc)
- •Применение web-технологий
- •Именованные каналы
- •Объектно-ориентированное программирование в vba Среда программирования. Типы данных. Процедуры. Окно проекта, окно свойств, окно кода, окно немедленно выполняемых команд, окно контрольных значений.
- •Процедуры, функции, передача параметров, область видимости.
- •Типы данных.
- •Вызов макроса с вычисляемым именем
- •Запуск макроса в заданное время
- •Запуск внешней программы, управление ею
- •Вызов api-функций и других библиотечных функций
- •Программное изменение кода.
- •Динамические массивы
- •Объектно-ориентированное программирование Базовые понятия ооп
- •Расширение объектной модели
- •Коллекция
- •Раннее и позднее связывание
- •Дополнительные элементы управления (ActiveX –объекты)
- •Описание программирования в vba, модели com Доступ к вставленным в документ ole-объектам
- •Доступ к внешним com-серверам
- •Вычисляемые свойства, свойства только для чтения.
- •События. Обработчики событий.
- •Использование событий объекта Application
- •Использование диалогов
- •Свойство для программиста.
- •Пользовательские классы. Классы.
- •Класс, объекты которого реагируют на события.
- •Моделирование наследования. Фактическое наследование. WithEvents.
- •Пользовательские события.
- •Как исп польз события
- •Создание экземпляра класса.
- •Автоматическая сборка мусора
- •Уничтожение экземпляра класса
- •???Интерфейсы.
- •???Интеграция при помощи промежуточного буфера
- •Обмен сообщениями. Протокол dde.
- •Задачи интеграции и децентрализации.
- •Фрагментация данных и размещение
- •Язык доступа к данным sql Стандартные команды
- •Язык запросов
- •Изменение данных при помощи sql
- •Изменение структуры базы данных при помощи ddl
- •Выполнение команд изменения структуры, изменения базы данных
- •Расширения Jet 4.0 ansi-92
- •Доступ к базам данных.
- •Доступ к базам данных с помощью odbc.
- •Доступ через odbc из Delpi7.
- •Доступ к базам данных с помощью технологий ado. Соединение, курсор
- •Свойства и методы набора записей (курсора).
- •Вызов отчетов, сформированных в базе данных
- •Пример dao
- •???Доступ к базам данных с помощью технологий dao.
- •???Доступ к базам данных с помощью web технологий.
- •Удаленный вызов процедур.
- •Обращение к удаленным объектам. Привязка клиента к объекту. Статическое и динамическое удаленное обращение к методам. Передача параметров. Dce, rmi.
- •Распределенная система объектов corba. Введение.
- •Архитектура системы.
- •Структура связей corba.
- •Исключения corba.
- •Передача параметров.
- •Corba-объекты и серванты.
- •Отображение idl на языки программирования
- •Объектные адаптеры.
- •Транзакции и сервис транзакций в corba.
- •Обзор технологий dcom, .Net Определение
- •Немного истории
- •Решение .Net
- •Модель .Net
- •Обзор двоичных файлов .Net.
Моделирование наследования. Фактическое наследование. WithEvents.
Моделирование заключается во включении в свойства класса объектной переменной другого класса.
Покажем разницу в распределении ОП в случае наследования и в случае моделирования. Пусть есть описания классов для заводской поликлиники:
Класс человек = имя, фамилия, отчество, дата рождения.
Класс работник = дата поступления, специальность, место работы.
Класс больной = диагноз, дата начала болезни, лечение.
Слева в таблице показаны фрагменты программы в предположении, что наследование есть, справа – наследования нет.
Описание связей классов |
|
Работник ЭТО человек Больной ЭТО работник |
Класс работник = дата поступления, специальность, место работы, к_человек Класс больной = диагноз, дата начала болезни, лечение, к_работник
|
Описание объектных переменных, создание экземпляра производного класса. |
|
Описание Б New типа больной
|
Dim Б as New больной Б.к_работник = New работник Б.к_работник.к_человек = New человек |
Обращение к элементам классов |
|
Б.специальность Б.имя |
Б. к_работник .специальность Б. к_работник.к_человек.имя |
Наличие фактического наследования в VBA можно показать на примере элементов управления на форме. Все элементы коллекции Controls имеют координаты, размеры, и т.п. Поэтому если Вы опишите объектную переменную типа Control, то редактор будет подсказывать Вам эти свойства. Если же Вы опишите переменную типа Image, то увидите подсказку особых свойств элемента управления, например, Picture. В то же время к этому элементу можно обратиться двумя способами, видя при каждом разный набор свойств.
Поместите на форму один элемент управления Image. Программа, вызываемая, например, по щелчку на форму, изменяет высоту и цвет фона последнего добавленного элемента, то есть Image.
Dim s As Control, si As Image
Set s = Controls(Controls.Count - 1)
s.Height = s.Height + 10
Set si = s
' а можно и Set si=Controls(Controls.Count - 1)
si.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
В программе используются две объектные переменные разных типов для того, чтобы редактор подсказывал имеющиеся свойства и методы. Это не обязательно. Следующий код тоже будет работать.
Dim s As Control
Set s = Controls(Controls.Count - 1)
s.Height = s.Height + 10
s.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
s.Picture = LoadPicture(ActiveDocument.Path & "\S.jpg")
Если же последний элемент управления не является Image, то оба варианта кода приведут к ошибке. В первом случае сообщение об ошибке будет выдано при выполнении оператора присваивания Set si=s – несоответствие типов. А во втором случае при попытке обратиться к свойству BackColor будет сказано, что такого свойства нет (если его действительно нет у последнего элемента управления).
Пользовательские события.
Иногда удобно определить некоторое выделенное состояние объекта или взаимное состояние объектов как событие. Такое событие не зарегистрировано в операционной системе, Вы должны сами сказать, когда оно произошло, и что при этом делать. Такие события называются пользовательскими событиями.
Пользовательские события описываются в общей области класса, причем описание похоже на описание процедуры или функции, перед которым стоит служебное слово Event. В методах класса необходимо инициировать события, используя команду RaiseEvent имя_события.
Объектная переменная такого типа (пользовательский класс с событиями) должна описываться со словом WithEvents. Обработчики событий должен писать пользователь Вашего класса.
Пусть описан класс с именем «calc» следующим образом.
Public Event vrong (i As Integer)
Public Function fact(i as integer) as Integer
Dim r as integer, j as Integer
r=1
For j=2 to i
r= r*j
If r>256 Then
RaiseEvent vrong (j)
fact = r
Exit Sub
Endif
Next
fact=r
End Function
Тогда в обычном модуле: описана объектная переменная, создан экземпляр, вызван метод, описан обработчик события.
Dim WithEvents cl as calc
Sub try()
Set cl = New calc
MsgBox cl.fact(5)
MsgBox cl.fact (555)
End Sub
Sub cl_vrong(c as Integer)
MsgBox “Слишком большое число, посчитано только для ” & c
End Sub
При выполнении процедуры try сначала будет выдан результат 120, затем будет выдано сообщение о слишком большом числе и затем – частично посчитанный результат.
