Анимация
JavaScript


Главная  Библионтека 

0 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 [ 120 ] 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146

- Л/л Мрлгкг Jlt Иг.-лгкг fi-uyr [j-prur.

! ЛГПИ Irt J-Mfi 2

[0Cb4M=if jj riii«H=uR.iidii: £] U jj

IL li 1 I ai-3 I ti-5 ici-r I 0- oi 10-1 -I I IS-1 -с I 14- El 1С-1 л

uyxrtivicaiiiAM.jiv.ijaspjM.jLtimi

±

11 rfliHmi

)v "nil il lirin-

? mi

I :тр 1 I л-л 1

м- .-г.м i:- Р.г,л I -1411 [ТТЛ

Рис. 10.9. Пример передачи данных в Microsoft Word

Запись информации в Schedule+

Используя возможности OLE Automation и наличие в составе пакета Microsoft Office специальной программы для планирования - Schedule+, мы можем расширить возможности нашего приложения за счет включения в него функций бизнес-планирования.

Microsoft Schedule+ является средством бизнес-планирования, которое может использоваться в локальном режиме и в режиме совместного доступа. Программа Schedule+ является OLE-сервером, и поэтому мы можем использовать объекты этой программы для хранения, планирования и управления сведениями о встречах, собраниях, задачах, контактах и событиях. При планировании в расписание заносится оповещение, что позволяет не забыть о важной встрече, задаче или событии.

Организация объектов в Schedule+ несколько отличается от Excel или MS Graph. Здесь имеются два типа объектов: таблица и пункт. Каждая таблица состоит из определенного количества строк, которые и представляются пунктами. Каждый пункт имеет определенный набор свойств. Описанная структура приведена на рис. 10.10.

О&ъект типа msttnuua

Пунет 1

Объект типа пункт

Пун1ст2

Свойство 1

Свойство 2

ПуннгтЗ

Рис. 10.10. Структура объектов в Schedule+

В качестве объектов типа таблица рассматриваются основные функциональные возможности Schedule+. Это запланированные события (Appointments), записи о лицах (Contacts), предупреждения (Alarms) и т. д. В свою очередь каждое событие, запись и т. п. является объектом типа пункт и имеет набор свойств. Например, для того чтобы записать сведения о новом лице в Visual Basic, необходимо выполнить такую программу:

Sub NewContact()



Dim oSchedApp As Object, oSchedTable As Object, oSchedItem As Object

* Запускаем скрытую копию Schedule+

Set oSchedApp = CreateObject("SchedulePlus.Application")

* Проводим процедуру регистрации If Not oSchedApp.LoggedOn Then oSchedApp.LogOn

End If

* Устанавливаем ссылку на объект типа таблица.

* Свойство ScheduleLogged возвращает объект планирования для

* зарегистрированного пользователя.

Set oSchedTable = oSchedApp.ScheduleLogged.Contacs

* Устанавливаем ссылку на объект типа пункт (новый пункт в таблице) Set oSchedItem = oSchedTable.New

* Записываем в пункт данные с помощью его свойств oSchedItem.SetProperties FirstName:="Андрей", LastName:="Горев", Notes:="Эффективная работа с СУБД на основе решений Microsoft", PhoneBusiness:="(812)259-4277", PhoneFax:="(812) 112-6872"

Стираем ссылки на объекты Set oSchedItem = Nothing Set oSchedTable = Nothing Set oSchedApp = Nothing

End Sub

После выполнения этой программы откройте Schedule+, и вы увидите, что на вкладке Contacts появилась новая запись.

Совершенно аналогично можно записать в Schedule+ какое-либо планируемое событие. В этом случае дата и время начала и окончания планируемого события должны быть указаны обязательно.

Sub NewAppoint()

Dim oSchedApp As Object, oSchedTable As Object, oSchedItem As Object Set oSchedApp = CreateObject("SchedulePlus.Application") If Not oSchedApp.LoggedOn Then oSchedApp.LogOn

End If

Устанавливаем ссылку на таблицу планируемых событий Set oSchedTable = oSchedApp.ScheduleLogged.Appointments Создаем новое событие, в котором хотим участвовать Set oSchedItem = oSchedTable.New Описываем это событие oScedItem.SetProperties Text:="DevCon97",

Notes:="Ежегодная международная конференция разработчиков Microsoft",

Start:=("06/10/97 10:00"),

End:=("06/13/97 18:00") Стираем ссылки на объекты Set oSchedItem = Nothing Set oSchedTable = Nothing Set oSchedApp = Nothing

End Sub

10.4. Применяем ActiveX

В этом параграфе на примерах иерархического списка и календаря мы опишем, как можно использовать элементы ActiveX в пользовательском приложении.

Иерархический список

Одним из поставляемых компонентов ActiveX (OCX) для средств разработки Microsoft является Outline. Необходимо сказать, что элемент управления Outline (файл MSOUTL32.OCX) представляет собой особую разновидность списка, в котором можно отображать элементы в иерархическом порядке. Этим пользуются при схематическом изображении каталогов и файлов в файловой системе. Именно такой метод применен в Windows 95 и Windows NT 4.0.

У каждого элемента в списке Outline могут быть подчиненные элементы, которые визуально



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

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

• Линии древовидной структуры. Вертикальные и горизонтальные линии, связывающие первичные элементы с подчиненными. Линия дерева генерирует события Expand и Collapse.

• Отступ. Характеристика уровня подчиненности элемента. Каждый уровень отступа соответствует определенному уровню подчиненности, который вы задаете с помощью свойства Indent.

• Значок "плюс/минус". Указывает, видимы подчиненные элементы или скрыты. Если щелкнуть мышкой на значке "плюс", подчиненные элементы становятся видимыми и значок "плюс" заменяется значком "минус". Если щелкнуть мышкой на значке "минус", подчиненные элементы скрываются и значок минус заменяется значком "плюс".

• Изображения типа. Отображают состояние элемента. На рисунках с изображением типа обычно показывается, допускает ли элемент, обладающий подчиненными элементами, развертывание или свертывание. Например, изображение закрытой папки указывает на то, что элементы каталога можно развернуть. Состояние элемента определяется пользователем. Рисунок с изображением типа генерирует события PictureClick и PictureDblClick.

• Текст. Символьная строка, отображаемая для элемента.

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

Свойство Style позволяет задать или запретить отображение всех или некоторых графических элементов для каждого элемента списка Outline.

Чтобы выбрать элемент списка, необходимо щелкнуть (или дважды щелкнуть) на строке с соответствующим текстом. Щелчка мышкой только на графическом элементе недостаточно.

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

Итак, начнем с того, что в Visual FoxPro создадим новую форму. Затем, выбрав команду Options из меню Tools, активизируем вкладку Controls. На данной вкладке в списке Selected установим крестик на пункте Outline Control, как это показано на рис. 10.11. Далее нажмем кнопку View Classes панели инструментов Controls и в открывшемся меню выберем OLE Controls. На рис. 10.12 показано меню кнопки View Classes. Таким образом, у вас появится возможность визуально поместить данный элемент управления в форму посредством нажатия кнопки Outline Control (рис. 10.13). Однако в Visual FoxPro есть и более простой способ подключения элементов управления ActiveX, включающий в себя ледующие действия:



0 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 [ 120 ] 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146