Автор работы: Пользователь скрыл имя, 03 Сентября 2013 в 19:48, отчет по практике
Целью настоящей практики является не только закрепление навыков, полученных в процессе обучения, но и получение более глубоких теоретических знаний по таким дисциплинам как: “Архитектура операционных систем», “Архитектура ПЭВМ», “Программирование».
ВВЕДЕНИЕ 2
1 ОПИСАНИЕ ПРЕДПРИЯТИЯ 3
1.1 Общие сведения о предприятии 3
1.2 Структура отдела 3
2 ОБЩАЯ ХАРАКТЕРИСТИКА ВЦ ПРЕДПРИЯТИЯ 4
2.1 Парк вычислительной техники 4
2.2 Структура сети предприятия 4
2.3 Специфика работы отдела 5
3 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ О ПЛАТФОРМЕ LOTUS 6
3.1 Описание Lotus Notes 6
3.1.1 Общие сведения о Lotus Notes 6
3.3 Среда разработки Lotus-приложений Domino Designer 11
3.3.1 Работа в среде Lotus Domino Designer 11
3.3.2 Проектирование форм 11
3.3.3 Средства навигации по базам данных 13
3.4 Языки программирования Domino 15
3.4.1 Сравнение языков программирования, доступных в Domino 15
3.4.2 Язык формул 16
3.4.3 Язык LotusScript 16
3.4.4 Встроенные классы LotusScript 17
4 ВЫПОЛНЕНИЕ ИНДИВИДУАЛЬНОГО ЗАДАНИЯ 20
4.1 Постановка задачи 20
4.2 Анализ задачи и составление логической схемы 20
4.3 Проектирование базы данных 20
ЗАКЛЮЧЕНИЕ 27
Выполнение последовательности действий при запуске агента, выборе активной пиктограммы, акции в виде, активного участка в навигаторе, акции, кнопки или активного участка в форме.
Язык формул (@Formula) состоит из функций (@Functions) и команд (@Command).
Основные типы формул- это ветвление, работа с переменными среды, хранящихся в файле NOTES.INI, функции полей (числовые, строковые, для работы со списками, дата/время и др.), функции для работы с документами, полями, видами, папками, навигаторами, документами, в том числе и с текущим, организация диалога с пользователем, доступ к другим базам данных (не Notes), работа с правами доступа, ролями, агентами.
Функция выполяняет определенное действие и возвращает результат, команда в отличие от функции результат не возвращает, а просто выполняет действие.[3]
LotusScript является объектно-
Встроенные классы Notes можно разделить на две группы:
Классы интерфейса пользователя позволяют разработчику приложений эмулировать многие действия пользователя. Они обеспечивают доступ к таким объектам пользовательского интерфейса, как рабочее пространство Notes (Workspace), окно вида (View window), окно документа (Document window), поле и поле произвольного текста (RichText) в окне документа. Действия, выполняемые над объектами классов интерфейса пользователя, отображаются в пользовательском интерфейсе, т.е. «происходят» как бы «на сцене, на переднем плане».
Класс NotesUIWorkSpace представляет текущее рабочее пространство Notes.
Класс NotesUIDocument представляет документ, который в текущий момент выбран в рабочем пространстве Notes.
Классы заднего плана представляют такие объекты Notes, как базу данных, вид или папку, агент, документ, пункт в документе. Программист с использованием объектов этих классов может манипулировать перечисленными объектами Notes из разработанных им скриптов. При этом выполняемые над объектами действия происходят без явного отображения в пользовательском интерфейсе, как бы «за сценой, на заднем плане».
Класс NotesSession представляет среду Notes, в которой выполняется данный скрипт. Он позволяет получать доступ к переменным из файла NOTES.INI, адресным книгам, информации о текущем пользователе, текущей платформе и номере реализации Notes.
Класс NotesDbDirectory представляет все базы, расположенные на указанном сервере или локальном компьютере. Он позволяет программисту «просмотреть» список имеющихся баз и получить доступ к любой из них.
Класс NotesDatabase представляет конкретную базу Notes и обеспечивает доступ ко всем содержащимся в ней объектам.
Класс NotesACL представляет список управления доступом (ACL) базы. Одной из составляющих частей ACL является набор элементов (ACL Entry), каждый из которых описывает права доступа к базе конкретного пользователя, сервера или группы.
Класс NotesACLEntry представляет один элемент из набора элементов в ACL.
Класс NotesAgent представляет конкретного агента.
Класс NotesView представляет вид или папку в базе и обеспечивает доступ содержащимся в виде или папке документам.
Класс NotesViewColumn представляет столбец вида или папки.
Класс NotesDocumentCollection представляет коллекцию (подмножество) документов из базы, отобранную в соответствии с некоторым критерием.
Класс NotesDocument представляет один документ в базе.
Класс NotesItem представляет один пункт документа - часть данных из документа, которая обычно отображается в интерфейсе пользователя в одном поле формы. Когда документ создается по некоторой форме, информация, введенная пользователем или вычисленная, для каждого из полей формы (кроме вычисляемых для показа), сохраняется в документе и образует один пункт этого документа. Однако средствами LotusScript программист имеет возможность создавать документы и работать с существующими, никак не привязываясь при этом к конкретной форме для показа этих документов. Поэтому поле в форме (Field) и пункт в документе (Item) - это разные объекты, хотя часто и связанные между собой.
Класс NotesRichTextItem представляет в документе один пункт типа «произвольный текст» (RichText). Этот класс является производным от класса NotesItem, т.е. он наследует все свойства и методы базового класса, но дополнительно имеет и свои собственные специфические свойства и методы для работы с произвольным текстом.
Класс NotesEmbeddedObect представляет внедренный объект, связанный объект или присоединенный файл, содержащийся в объекте класса NotesRichTextItem, а с точки зрения пользователя, в поле типа RichText.
Класс NotesLog позволяет
протоколировать выполняемые пр
Класс NotesNewsLetter позволяет создавать документы, содержащие информацию из других документов, или документы, содержащие DocLink-и на многие другие документы.
Наконец, класс NotesDateTime служит для преобразования значений типа «дата-время» между форматами LotusScript и Notes.[1]
Разработать базу данных Lotus Notes «Аэропорт», позволяющую:
База данных будет состоять из трех видов. В первом будут отображаться документы Направлений,во втором – Рейсов, в третьем – документы проданных билетов. В каждом виде информация будет сгруппирована. Например, проданные билеты будут сгруппированы по рейсам. Навигация по видам будет осуществляться при помощи схемы outline. Виды и схема будут закреплены за фреймами набора фреймов «main», который будет открываться по умолчанию при открытии базы документатора.
Для задания критериев отбора, содержания
полей видов, обработчиков некоторых
событий форм, а также в формулах
некоторых полей будем
Для создания агента будем использовать язык LotusScript.
Проектирование базы данных «Аэропорт» разобъем на этапы, на каждом из которых будем проектировать определенный элемент дизайна базы:
«Пассажиры»:
@SetTargetFrame("Title");
@Command([OpenPage];"
@SetTargetFrame("Main");
@Command([OpenView];"
«Рейсы»:
@SetTargetFrame("Title");
@Command([OpenPage];"
@SetTargetFrame("Main");
@Command([OpenView];"Рейсы";""
«Направления»
@SetTargetFrame("Title");
@Command([OpenPage];"
@SetTargetFrame("Main");
@Command([OpenView];"
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim note As NotesDocument
Dim memo As NotesDocument
Dim item As NotesItem
Dim dateNow As New NotesDateTime(Now)
Dim dateNew As NotesDateTime
Set db = s.CurrentDatabase
Set collection = db.AllDocuments
Set note = collection.GetFirstDocument
'для всех направлений
'высчитываем дату отправления
'проверяем: если есть такой документ, то продолжаем просмотр
'если нет, то создаем новый через makeResponse
Dim weekD As Integer
Dim x As Variant
Do Until note Is Nothing
If note.form(0) = "Directions" Then
'Высчитываем дату отправления
Select Case note.GetItemValue("daysToFly")
Case "Воскресенье"
weekD=1
Case "Понедельник"
weekD=2
Case "Вторник"
weekD=3
Case "Среда"
weekD=4
Case "Четверг"
weekD=5
Case "Пятница"
weekD=6
Case "Суббота"
weekD=7
Case "Ежедневно"
weekD=Cint(Weekday(Now))
End Select
Set dateNew=dateNow
Call dateNew.AdjustDay(14+weekD-
'получаем коллекцию
наследников и в цикле проверяе
'вычисленная дата
Dim respCollection As NotesDocumentCollection
Set respCollection=note.Responses
Dim dateTemp As NotesDateTime
Dim docResp As NotesDocument
Set docResp = respCollection.
Do Until docResp Is Nothing
Set dateTemp = New NotesDateTime(docResp.
If dateTemp.TimeDifference(
Set docResp = respCollection.
Loop
'если все хорошо, то создаем документ
Set memo = New NotesDocument(db)
memo.form="Flights"
Call memo.MakeResponse(note)
Call memo.AppendItemValue("
Call memo.ComputeWithForm(False,
Call memo.Save(True,False)
EndLoop:
End If
Set note=collection.
Loop
End Sub
4.4 Тестирование базы данных
Переход к фазе «тестирование базы данных» осуществляем после того, как база данных полностью спроектирована. Если в результате тестирования находим какие-либо ошибки или «недоработки», то открываем базу в режиме конструктора и исправляем проект.
При открытии базы данных по умолчанию открывается набор фреймов «main», при этом открывается и вид «Пассажиры», который является видом по умолчанию в базе данных (рис. 1):
Рисунок 3 - Внешний вид базы данных “Аэропорт»
Щелчком мыши в области навигации по ссылке «Рейсы» открываем вид «Рейсы», который отображает документы. Чтобы создать новый документ, нажимаем на кнопку «Создать» и в открывшемся окне заполняем необходимые поля. Для редактирования или просмотра документа открываем его двойным щелчком.
Рисунок 4 – Форма документа проданного билета
Для запуска агента вручную щелкаем по кнопке «Создать автоматически»