
- •Корпоративные информационные системы. Задача интеграции. Корпоративные системы.
- •Модель 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.
Свойство для программиста.
Многие объекты моделей Word, Excel и другие имеют среди своих свойств одно, значение которого можно задавать, изменять в программе совершенно спокойно, так как это свойство не имеет никакого видимого или невидимого умалчиваемого эффекта, это – свойство для программиста TAG.
К сожалению, это свойство не стандартизировано, поэтому оно бывает числовое, бывает строковое. В строковом поле легче хранить несколько нужных данных.
Пользовательские классы. Классы.
Пользовательский тип, создаваемый при помощи type, – это набор свойств. Этого может оказаться недостаточно: не хватает методов и событий. Часто необходимо применить пользовательские классы.
Вы можете описывать свои классы, вставляя модули классов (один модуль – один класс).
Очевидно, описание класса – это описание той сущности, которую мы будем подразумевать, когда назовем имя класса. Для того чтобы создать свой класс, вставьте в проект "модуль класса". В общей области (General) модуля класса описываются свойства (описываются как переменные). Свойства – это переменные базовых типов или объектные переменные. Описатель Public применяется в случае описания внешнего свойства, Private – в случае свойства, доступного только в модуле класса.
Описание класса – это инструкция для системы. Экземпляр класса появляется при вызове конструктора New, то есть если у вас описан класс с именем sharic, то создать экземпляр класса можно, задав конструкцию New sharic. Но к таким образом созданному экземпляру невозможно обратиться. Поэтому следует в некоторую переменную присвоить указатель на созданный экземпляр класса. Это делается следующим образом: Set uk = New sharic.
Объекты этого вида (типа, класса) создаются по слову New, указанному при описании объектной переменной или при присваивании ей значения. Заметьте, что в случае верного описания класса, его имя появляется в списке типов – подсказок VBA.
Примеры описаний (пусть ранее в проект включен модуль класса с именем my):
Dim nn As my Set nn = New my |
Dim nn As New my
|
Важно! Заметьте, что объекты встроенных типов не создаются по слову New: они всегда входят в некоторые коллекции, и создание объекта превращается в добавление элемента к коллекции.
При создании объекта класса возникает событие Initialize. Обработчик этого события не имеет параметров. Его можно использовать для инициализации свойств объекта, но только в том случае, если все объекты инициализируются одинаково, либо закон задается в обработчике события. Если же начальные свойства объектов различны, то требуется писать свой метод начального заполнения и вызывать его после создания объекта.
Для обращения к свойствам класса в модуле класса рекомендуется пользоваться браузером доступных объектов (Ctrl+J). При этом как-то указать текущий экземпляр нет необходимости.
Если же вы укажите служебное слово me, то увидите только Public свойства и методы.
Класс, объекты которого реагируют на события.
Рассмотрим вопрос о том, как описать собственный класс объектов, реагирующих на события. Для элементов управления (точнее для ActiveX объектов) в операционной системе зарегистрированы события, на которые они реагируют. С другой стороны, к элементам формы невозможно приписать свои свойства и методы, даже динамические, т.к. эти элементы не показываются в виде отдельных пунктов проекта, и, следовательно, для них в среде программирования на VBA не предусмотрено окно кода. Свойства можно приписать только ко всей форме.
Решение проблемы состоит в создании пользовательского класса, одним из свойств которого является объект – элемент формы. Для того чтобы этот элемент класса реагировал на события, соответствующее свойство описывается со служебным словом WITHEVENTS. Этот описатель применяется только в классе, встроенном или пользовательском. В модуле Вы не можете описать таким образом переменную.
В программе может быть много переменных с описателем WithEvents, но недопустимо так описывать массив. Недопустимо сразу описывать и создавать объекты с WithEvents с помощью New (из-за каких-то особенностей реализации).
Рассмотрим такой пример. Пусть нам необходимо поместить на форму заранее неизвестное количество кнопок. Надписи на кнопках различны.
Опишем пользовательский класс, т.е. вставим модуль класса, дадим ему имя Knopka. После того как вы опишите свойство bttn, с помощью которого реализована связь с кнопкой, с описателем WithEvents, можно в окне объектов (вверху над программным кодом, слева) выбрать объект bttn, а затем в правом верхнем окне выбрать событие, обработчик которого вы хотите написать.
Dim WithEvents bttn As Control
Dim nm as String
Программный код в модуле класса содержит обработчик события Initialize – инициализация (создание экземпляра). В нем на форму добавляется кнопка, но об этом мы поговорим в следующем пункте. Имя кнопки формируется случайным образом.
Dim WithEvents bttn As CommandButton
Dim nm as String
Private Sub Class_Initialize()
Set bttn = UserForm1.Controls.Add(“Forms.CommandButton.1”)
nm = “Кнопка” & (Rnd*100+1)
End Sub
Private Sub bttn_Click()
MsgBox “Нажали на кнопку с надписью ” & nm
End Sub
Программный код где-либо (в модуле или в документе) может содержать, например, следующий текст, в котором создаются экземпляры описанного выше класса, реагирующие на щелчок.
Dim kn(10) as Knopka, i as Integer
For i=1 to 10
Set kn(i)= New Knopka
Next