Информационное обеспечение систем управления





НазваниеИнформационное обеспечение систем управления
страница17/19
Дата публикации05.12.2014
Размер3.02 Mb.
ТипРеферат
100-bal.ru > Информатика > Реферат
1   ...   11   12   13   14   15   16   17   18   19
8. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ЯЗЫК

8.1. Основные понятия

В предыдущем разделе мы рассмотрели основные возможности базового языка VFP. Кроме него, СУБД VFP, начиная с версии 3.0, имеет еще одну часть, связанную с объектно-ориентированным программированием (ООП). При этом сохраняется совместимость со всеми предыдущими версиями FoxPro. В этом разделе анализируются основные понятия ООП. К ним относят понятия объекта, класса, свойства, метода и события.

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

В основе объектно-ориентированного программирования лежит идея существенного ускорения процесса накопления “строительных фрагментов” для разработки программного обеспечения. Объектно-ориентированное программирование подразумевает создание программы из заранее подготовленных модулей – объектов, которые, будучи единожды описаны, могут впоследствии легко модернизироваться для приспособления к изменяющимся условиям. Такой подход способствует повышению производительности труда, хотя и требует больших затрат на первоначальное освоение.

Объектно-ориентированное программирование – это программирование в терминах классов. Его основные операции следующие:
создать объект (экземпляр класса) на основе встроенного класса;
создать собственный класс на основе встроенного класса;
создать объект (экземпляр класса) на основе собственного класса;
изменить свойство созданного объекта;
добавить новое свойство в собственный класс или объект;
создать собственный метод для фиксированного события класса;
вызвать на выполнение встроенный метод определенного класса.

Класс – это некоторый шаблон, наделенный такими характеристиками как свойство, метод и событие. На основе этого шаблона можно создать неограниченное число объектов, которые наследуют все его характеристики.

Следующее понятие   это понятие объекта. В предыдущих версиях FoxPro (до версии 3.0) объекты уже существовали в “урезанном виде”. Например, “окно”, “поле ввода”, “сноска”, “меню”. Но в VFP добавлено много других объектов, и они наделены такими атрибутами как свойства и методы.

Свойство – это характеристика, с помощью которой описывается внешний вид и/или поведение объекта. Например, кнопка имеет такие свойства как: расположение на форме; ширина; высота; цвет; надпись на кнопке; тип шрифта; размер и стиль текста надписи; переменная, связанная с кнопкой и др.

Каждый объект обладает определенным набором свойств. Элементы этого набора наследуются от родительского класса или добавляются индивидуально для создаваемого объекта. Для программиста свойство аналогично переменной и оно всегда означено. Значения по умолчанию наследуются. Для многих объектов набор свойств и их значения можно увидеть в окне свойств, где измененные значения выделены жирным шрифтом, а недоступные для изменения свойства   курсивом. К свойству обращаются в двух случаях: либо выбрать значение свойства, либо изменить его. Формат обращения в первом случае
pp=<имя объекта>.<имя свойства>,
а во втором случае
<имя объекта>.<имя свойства>= pp,
где pp – некоторая переменная памяти.

В окне свойств конструктора форм имеется четыре вкладки (Data   свойства источника данных, Layout   свойства внешнего вида, Other   дополнительные, All – полный перечень).

Объекты, кроме свойств, нуждаются ещё в методах. Метод – это функция или процедура, которая будет в приложении управлять поведением объекта. Момент выполнения метода определяется исключительно программистом, так как метод вызывается только при его явном указании. Метод может быть защищён от дальнейших изменений и как в любую функцию, в него можно как передать параметры, так и получить возвращаемое значение. Однако, ни метод, ни событие не могут иметь вложенных процедур. Метод не может иметь имя, одинаковое со свойством или событием.

Другими словами, методы – это действия, которые объекты могут выполнять. Например, объект формы имеет, по крайней мере, два метода – Open и Close, так как при создании формы предполагается её когда-нибудь открывать, а затем открытую форму закрывать.

Для каждого объекта VFP существует свой набор методов. Так как метод- это некоторая процедура, то в нее можно передавать параметры. Вызов метода на выполнение организуется по форме
<имя объекта>.<имя метода(параметр1, параметр2, )>.

Список методов отображается в окне свойств (своя вкладка), для редактирования метода достаточно выполнить на его имени двойной щелчок. В зависимости от объекта в окне свойств меняется список свойств и методов.

Существуют стандартные методы, наследуемые создаваемые объектами из базовых классов VFP, и определяемые пользователем методы.

B VFP для каждого объекта определен фиксированный и неизменяемый набор событий (нельзя добавлять и изменять события). Одно и тоже событие может происходить при разных действиях пользователя для разных объектов. Программы обработки событий или методы содержатся в окне кода. Это окно содержит два списка, в одном из которых выбирают объект, а в другом   событие. В основной части окна можно увидеть текст программы метода.

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

Как обращаться с объектами? Рассмотрим объект “окно” в базовом языке. Следующие две команды создают и активизируют такой объект.

Пример 1.

DEFINE WINDOW W1;

FROM 1,1 TO 20,30

CLOSE FLOAT GROW MINIMIZE SYSTEM ZOOM;

TITLE “Традиционное окно”

ACTIVATE WINDOW W1

Хотя эти команды создают окно, но оно не является настоящим объектом. Чтобы создать окно (форму) как объект нужно использовать функцию ООП – CREATEOBJECT( ).

Пример 2.

f1=CREATEOBJECT(“FORM”)

f1.show( )

f1.caption=“Новый тип окна”

Первая строка программы создаёт объект, возвращая при этом ссылку на него, которая помещается в переменную f1. Действительно, если теперь ввести команду DISPLAY MEMORY LIKE f1, то можно увидеть реакцию системы
f1 Pub 0 FORM.
Эта строка говорит о том, что f1 является общей переменной типа “0” для объекта, имеющего специфический тип – “форма”.

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

Вторая строка программы отображает на экране форму с использованием базового метода объекта Show. Метод подобно старой команде ACTIVATE WINDOW, делая форму сразу и видимой и активной.

Наконец, третья строка изменяет заголовок окна с Form1” (значение по умолчанию) на “Новый тип окна”. Эта строка соответствует стандартному формату изменения значения свойства объекта. VFP назначает имена объектам по умолчанию, основываясь на типе объекта и порядковом номере. Порядковый номер последовательно увеличивается в течение текущего сеанса работы. Следовательно, если создать вторую форму, её имя будет Form2” – до тех пор, пока вы её не переименуете.

В то время как оба окна выглядят одинаково (за исключением размера, позиции и заголовка), на самом деле они различны. Традиционное окно – только физический объект на экране, но в смысле ООП оно не является объектом. В отличие от нового окна с ним не связаны дополнительные свойства и методы.

8.2. Базовые классы

Функция CREATEOBJECT( ) создаёт объект исходя из определения некоторого класса. В примере 2 был создан объект базового класса Form.

Основой ООП является понятие класса. Класс – это шаблон, в котором описаны характеристики, определяющие поведение и внешний вид объект, который будет основан на этом шаблоне. Описание класса не является исполняемым кодом, оно представляет некую структуру, в которой записываются значения свойств, события и методы, присущие данному классу. В манипулировании этими тремя характеристиками – свойствами, событиями и методами – и заключается основная работа программиста.

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

Классы хранятся в файле библиотеки классов, он имеет расширение VCX и может содержать один или несколько классов. Например,
C:\VFP\WIZARDS\wizstyle.vcx (18472 кб).

Перечислим основные преимущества использования классов:

  • повышение скорости разработки приложений;

  • многократное использование программного кода без необходимости его переноса в новое приложение;

  • поддержка и модификация нескольких приложений через общие классы;

  • простая защита программного кода от изменений;

  • возможность создания подклассов.

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

описание базовых классов хранится в VFP;

на их основе могут быть созданы подклассы;

они не могут быть изменены программистом.

Всего базовых классов 28 – 36 (в зависимости от версии). Их делят на классы-контейнеры и классы-объекты. Классы-контейнеры могут содержать внутри себя другие объекты, последние не теряют внутри контейнера своего “суверенитета”. Например, форма является классом-контейнером, потому что внутри неё можно помещать другие объекты: переключатели, поле редактирования, рамки, текст, линии и т.п. Классы-объекты, хотя также могут включать составные части, но допускают манипуляции с ними только как с единым целым. Некоторые базовые классы занимают особое положение в связи с тем, что сами являются составной частью другого базового класса и поэтому не могут быть основой для создания подкласса. Например, элемент управления Header или контейнер Column.

Классы-объекты не могут содержать другие объекты. Например, нельзя поместить объект типа Line в объект типа TextBox. Когда объект помещён в контейнер, любая ссылка на объект должна содержать имя контейнера. Для ссылки на свойство объекта, помещённого в контейнер, используйте синтаксис:

<имя объекта-контейнера>.<имя объекта>.<свойство>

Этот синтаксис идентифицирует свойство объекта, который находится в объекте-контейнере.

В табл. 8.1 приведён список базовых классов, в котором подчёркнутые элементы являются классами-контейнерами.

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




Наименование

Назначение

Визуаль-
ный

Контей-
нер

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

ActiveDoc

CheckBox

Column

ComboBox

CommandButton

CommandGroup

Container

Control

Custom

EditBox

Form

FormSet

Grid

Header

HyperLink Object

Image

Label

Line

ListBox

OleContainerControl

OleBoundControl

OptionButton

OptionGroup

Page

PageFrame

ProjectHook

Separator

Shape

Sprinner

TextBox

Timer

ToolBar

Активный документ

Флажок

Столбец

Раскрывающийся список

Кнопка управления

Набор кнопок управления

Контейнер

Базовый визуальный класс

Базовый невизуальный класс

Поле редактирования

Форма

Группа форм

Таблица

Заголовок столбцов таблицы

Гиперссылка

Изображение

Надпись

Линия

Список

OLE-объект управления

OLE-объект данных

Переключатель

Набор переключателей

Вкладка формы

Макет страницы

Проект

Разделитель

Обрамление

Счётчик

Поле ввода

Таймер

Панель управления

Нет

Да

Да

Да

Да

Да

Да

Да

Нет

Да

Да

Нет

Да

Да

Нет

Да

Да

Да

Да

Да

Да

Да

Нет

Нет

Да

Да

Да

Да

Нет

Да

Нет

Нет

Да

Нет

Нет

Да

Да

Нет

Нет

Нет

Да

Да

Да

Нет

Нет

Нет

Нет

Нет

Нет

Нет

Да

Да

Да

Да

Нет

Нет

Нет

Нет

Нет

Да


При создании окна-объекта этого делать не надо, поскольку VFP включает свойства окна в определение базового класса Form. Также не нужно указывать размер окна и его положение на экране – базовый класс содержит значения по умолчанию и для этих свойств. Все свойства в базовом классе содержат значения по умолчанию. При создании объекта на основе класса копируются не только свойства, методы и события, но также и значения по умолчанию. Объект наследует эту информацию из класса.

Далее в подразделе 8.3 будет показано, как можно создавать новые классы на основе уже существующих классов. Эти новые классы также наследуют всё известное от предшественников. Некоторые объекты могут иметь много уровней родительских классов и наследуют свойства каждого из них.

Экземпляры класса. Программа (пример 2) создала новый объект f1 базового класса FORM. Этот объект является экземпляром данного класса. Аналогично, созданный объект является экземпляром родительского класса. Второй объект, созданный на основе этого же класса, будет точной копией первого. Например, следующие команды создают ещё два экземпляра класса Form

f2=CREATEOBJECT(‘FORM’)

f3=CREATEOBJECT(‘FORM’)

f2.show

f3.show

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

f2.Left=40

f2.Width=30

f3.Top=5

f3.Left=10

f3.Height=5

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

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

Имя объекта содержит указатель на объект в памяти, в которой хранится реальная информация об объекте. Поэтому можно создать ещё несколько переменных с этим указателем, например: f4=f1, f4 – это не другой объект, а только другое имя (псевдоним) определённого ранее объекта.

Как удалять объекты? Если нужно удалить окно W1 (см. пример 1), то достаточно выполнить команду
RELEASE WINDOW W1.

Этой же командой можно удалить и форму из примера 2, но для этого необходимо знать ее имя (не заголовок). Узнать имя формы можно командой ? f1.Name, и следовательно, удалить ее

RELEASE f1.Name.

Но эта команда работает только с формами. Проще удалить ссылку на объект, т.е. выполнить RELEASE f1.

В примере 2, кроме того, форма содержит стандартный значок “закрытие окна”, при нажатии на него объект форма уничтожается.

Можно создавать вложенные объекты (для объектов-контейнеров). Например, на форму можно добавить кнопку с надписью «Выход»

f1.caption=”Форма с кнопкой”

f1.Addobject(“K1”, “CommandButton”)

f1.K1.caption=“Выход”

p=f1.k1

p.Visible=.T.

Метод Addobject добавляет в объект-контейнер форму в режим выполнения объект-элемент кнопку (это стандартный метод для форм). Формат обращения к данному методу

Object.Addobject(cName, cClass),
где cName имя для ссылки на новый объект; cClass   класс добавляемого объекта. Свойство Visible   определяет видим объект или нет. Оно доступно как во время разработки, так и при выполнении и имеет два значения .Т. или .F..

Чтобы добавленная кнопка могла выполнять свою функцию, следует в окне кода на событие Clik ввести строку
Thisform.release.

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

8.3. Среда окружения формы

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

При создании форм с помощью мастера и размещении объектов на форме с помощью построителя среда окружения создается VFP без участия разработчика.

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

Среда окружения хранится в файле описания формы.

Для создания среды окружения формы предназначено диалоговое окно Data Environment, открыть которое можно одним из следующих способов:

выбрать команду Data Environment из меню View;

нажать кнопку Data Environment на панели инструментов Form Designer;

выбрать команду контекстного меню формы Data Environment.

При открытии окна среды окружения Data Environment в основное меню добавляется соответствующий пункт.

В окне Data Environment можно добавлять таблицы или виды, просматривать их в режиме Browse, открывать окно свойств объектов Data Environment, Cursor и Relation для задания различных значений их свойствам.

После размещения таблиц в контейнере Data Environment при необходимости можно упорядочить их записи. Для этого выполните следующие действия. Выделите нужную таблицу. Откройте окно свойств данной таблицы (объект Cursor). Для этого установите на нее курсор, нажмите правую кнопку мыши и выберите из контекстного меню команду Properties. Выделите свойство order . В поле коррекции свойства нажмите кнопку раскрытия списка. Из списка индексов таблицы выберите тот, по которому хотите упорядочить данные в форме.

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

Выделите линию, соединяющую таблицы. При этом в окне Properties будут отображаться свойства объекта Relation, характеризующие установленную между таблицами динамическую связь.

Проверьте, какая из таблиц является родительской, а какая дочерней по отношению к ней. Для этого просмотрите свойства ChiidAiias (Дочерняя таблица) и ParentAlias (Родительская таблица).

При необходимости посмотрите выражение, используемое для связи таблиц, воспользовавшись свойством RelationaiExpr (Выражение отношения). Оно должно совпадать с выражением, используемым при создании индекса, по которому таблицы связаны.

Ниже приведены перечни свойств, методов и событий классов Data Environment, Cursor и Relation, а также их назначение.
Класс DataEnvironment. Данный класс отличается от обычных классов VFP. Он является контейнером только для таких типов объектов как Cursor и Relation, ассоциированных с объектами типа form, form set или отчетом.

При установке свойств объекта DataEnvironment во время выполнения приложения выдается сообщение об ошибке. Для того чтобы новые значения свойств вступили в действие необходимо вызвать методы CloseTables и OpenTables для класса Dataenvironment.
1   ...   11   12   13   14   15   16   17   18   19

Похожие:

Информационное обеспечение систем управления icon«Учебно-методический комплекс дисциплины «Информационное обеспечение систем управления»

Информационное обеспечение систем управления iconПояснительная записка
«Современная организация и технология документационного обеспечения управления». Он связан с курсами «Документоведение», «Информационное...
Информационное обеспечение систем управления iconИсследование систем управления процесс определения организационной...
Место исследований систем управления в комплексе дисциплин по теории и практке управления
Информационное обеспечение систем управления iconПрограммное обеспечение для отладки систем управления упругими объектами
Целью данной работы является разработка программного обеспечения для лабораторного стенда для изучения систем управления упругими...
Информационное обеспечение систем управления iconРабочая программа дисциплины «Информационное обеспечение, базы данных»
Факультет информационных систем и технологий Кафедра Прикладной математики и вычислительной техники
Информационное обеспечение систем управления iconУчебная программа по дисциплине " информационное обеспечение управления "
Изучение теоретических, методических и практических вопросов разработки, внедрения и совершенствования информационного обеспечения...
Информационное обеспечение систем управления iconРоссийской Федерации Самарский государственный архитектурно-строительный...
Информационные системы” являются информационные системы и сети, их математическое, информационное и программное обеспечение, способы...
Информационное обеспечение систем управления iconРабочая программа дисциплины «Архитектура ЭВМ и вычислительных систем»...
«Автоматизированные системы обработки информации и управления» (по отраслям) и 230105 «Программное обеспечение вычислительной техники...
Информационное обеспечение систем управления iconИсследование систем управления
Целью работы является рассмотрение частных методов исследования систем управления, а именно эксперимент, наблюдение и опрос
Информационное обеспечение систем управления iconПримерная тематика рефератов по курсу «Исследование систем управления»
Современный менеджмент и необходимость исследования систем управления социально-экономической организацией
Информационное обеспечение систем управления iconОрганизационно-правовое обеспечение правовой деятельности
Информационное обеспечение организации и проведения внеучебной работы
Информационное обеспечение систем управления iconИсследование систем управления Специальности: «Менеджмент организации»
«Исследование систем управления» является ведущей,в учебном процессе среди смежных дисциплин
Информационное обеспечение систем управления iconРеферат по дисциплине "Избирательное право" тема: Информационное...
Информационное обеспечение выборов. Правовое регулирование предвыборной агитации в РФ
Информационное обеспечение систем управления iconИнформационное обеспечение управления
В настоящее время классификационные схемы (классификаторы) строятся не только на основе соподчинения понятий (метод иерархии), но...
Информационное обеспечение систем управления iconКурсовая работа По дисциплине «Базы данных»
Программное обеспечение для создания систем управления базами данных
Информационное обеспечение систем управления iconРабочая программа учебной дисциплины «исследование систем управления»
Студенты научатся методам планирования эксперимента и организации исследования систем управления и научатся использовать приобретенные...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск