Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания»





Скачать 494.07 Kb.
НазваниеОтчет о проделанной работе. 4 Создание классов 5 Класс «Компания»
страница3/4
Дата публикации13.03.2015
Размер494.07 Kb.
ТипОтчет
100-bal.ru > Информатика > Отчет
1   2   3   4

Работа с объектной базой данных


Создадим программу работы с объектами на языке Cache` Object Script в среде Cache`Studio и вызвать ее из среды Cache` Terminal. Программа принимает на вход значения:

  • all — просмотр списка всех сотрудников и руководителей,

  • director — просмотр списка всех руководителей,

  • номер — просмотр информации о сотруднике (руководителе), ID которого указан как входной параметр.

Для получения списка ID можно использовать SQL-запрос.

Для отображения информации необходимо обращаться к объекту класса "Сотрудник", его свойствам и методам:

  • "Информация о сотруднике" (класс "Сотрудник"(листинг)/ "Руководитель"(листинг), демонстрирует полиморфизм),

  • название компании (ссылка через связанный объект класса "Компания"(листинг)),

  • "Полный адрес" (класс "Адрес"(листинг), ссылка через связанный и встроенный объекты).

Программа для обращения к объектному представлению


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

if condition{code} elseif condition{code} else {code}

, где condition - это условие вида:

condition= <выр1>[,<выр2>,…,<выр3>].

Чтобы блок программы выполнился, все условия в списке должны быть логически истинными. В нашем конкретном случае код программы выглядит так:

main(var)
{
  if var="all"
  {
    code
  }
  elseif var="director"
  {
    code
  }
  else
  {
    code
  }
}

Далее рассмотрим по отдельности реализацию каждого условия.

Просмотр списка всех сотрудников и руководителей


Выполняется при вводе параметра "all". Рассмотрим алгоритм выполнения программы по шагам:

  • Выводим на экран монитора надпись-заголовок "Список сотрудников: ".

  • Используем объект класса % ResultSet для подготовки динамического SQL-запроса, используя метод Prepare:

set rset = ##class(%ResultSet).%New("%DynamicQuery:SQL")
Do rset.Prepare("SELECT ID FROM SQLUser.Worker")
Do rset.Execute() //выполнениезапроса

  • Устанавливаем счетчик  i в ноль.

  • Организовываем цикл while. Метод Next перемещает курсор на следующую строку данных запроса.

  • В теле цикла идет увеличение i, присвоение ссылки полю id, а затем открытие объекта класса User.Worker с помощью идентификатора id:

set id = rset.Data("ID")
set NewWM = ##class(User.Worker).%OpenId(id)

  • Вывод информации о сотруднике, используя метод WorkerInfo():

write !,i_". "_ NewWM.WorkerInfo(),

  • Вывод полного адреса компании:

write !, "Адрес компании: "
write NewWM.WorkerOrganization.OrganizationAddress.FullAddress(),!

В итоге получаем следующую программу:

if var="all"
{
  write !, "Список сотрудников: "
  set rset = ##class(%ResultSet).%New("%DynamicQuery:SQL")
  Do rset.Prepare("SELECT ID FROM SQLUser.Worker")
  Do rset.Execute()
  set i = 0
  while (rset.Next())
  {
    set i = i+1
    set id = rset.Data("ID")
    set NewWM = ##class(User.Worker).%OpenId(id)
    write !,i_". "_ NewWM.WorkerInfo()
    write !, "Адрес компании: "       write NewWM.WorkerOrganization.OrganizationAddress.FullAddress(),!
  }
}


Просмотр списка всех руководителей


Выполняется при вводе параметра "director". Рассмотрим алгоритм выполнения программы по шагам:

  • Выводим на экран монитора надпись-заголовок "Список руководителей: "

  • Используем объект класса % ResultSet для подготовки динамического SQL-запроса, используя метод Prepare:

set rset = ##class(%ResultSet).%New("%DynamicQuery:SQL")
Do rset.Prepare("SELECT ID FROM SQLUser.Manager")
Do rset.Execute() //выполнение запроса
В запросе только уже выбираем ID из таблицы "Руководителей".

  • Устанавливаем i в ноль.

  • Организовываем цикл while. Метод Next перемещает курсор на следующую строку данных запроса.

  • В теле цикла идет увеличение i, присвоение ссылки полю id, а затем открытие объекта класса User.Worker с помощью идентификатора id:

set id = rset.Data("ID")
set NewWM = ##class(User.Worker).%OpenId(id)

  • Вывод информации о сотруднике, используя метод WorkerInfo():

write !,i_". "_ NewWM.WorkerInfo(),

  • Вывод полного адреса компании:

write !, "Адрес компании: "
write NewWM.WorkerOrganization.OrganizationAddress.FullAddress(),!

В итоге получаем следующую программу:

elseif var="director"
{
  write !, "Список руководителей: "
  set rset = ##class(%ResultSet).%New("%DynamicQuery:SQL")
  Do rset.Prepare("SELECT ID FROM SQLUser.Manager")
  Do rset.Execute()
  set i = 0
  while (rset.Next())
  {
    set i =i+1
    set id = rset.Data("ID")
    set NewWM = ##class(User.Worker).%OpenId(id)
    write !,i_". "_ NewWM.WorkerInfo()
    write !, "Адрес компании: "       write NewWM.WorkerOrganization.OrganizationAddress.FullAddress(),!
  }
}


Просмотр информации о сотруднике (руководителе), ID которого указан как входной параметр


Рассмотрим алгоритм выполнения по шагам:

  • Выводим на экран монитора надпись "Код сотрудника = …: ", где вместо "…" номер ID, который введет пользователь.

  • Используем объект класса %ResultSet для подготовки динамического SQL-запроса, используя метод Prepare:

Set rset=##class(%ResultSet).%New("%DynamicQuery:SQL")
do rset.Prepare("SELECT * FROM SQLUser.Worker WHERE ID='"_var_"'")
do rset.Execute ()

Запрос выдает из таблицы "Сотрудник" данные того сотрудника, чей ID был введен пользователем.

  • Далее по аналогии с двумя вышеперечисленными примерами организуется цикл. В результате получаем следующий код:

else
{
  write !,"Код сотрудника = "_var_":",!
  Set rset=##class(%ResultSet).%New("%DynamicQuery:SQL")
  do rset.Prepare("SELECT * FROM SQLUser.Worker WHERE  ID='"_var_"'")
  do rset.Execute() 
  while(rset.Next())
  {
    set NewWM = ##class(User.Worker).%OpenId(rset.Data("ID"))
    write !, NewWM.WorkerInfo()
    write !, "Адрес компании: "
    write NewWM.WorkerOrganization.OrganizationAddress.FullAddress(),!
  }
}

Объединим все части воедино для просмотра листинга программы полностью.


Листинг программы просмотра списка сотрудников Prog3


main(var)
{
  if var="all"
  {
    write !, "Список сотрудников: "
    set rset = ##class(%ResultSet).%New("% DynamicQuery:SQL")
    Do rset.Prepare("SELECT ID FROM SQLUser.Worker")
    Do rset.Execute()
    set i = 0
    while (rset.Next())
    {
      set i =i+1
      set id = rset.Data("ID")
      set NewWM = ##class(User.Worker).%OpenId(id)
      write !,i_". "_ NewWM.WorkerInfo()
      write !, "Адрес компании: "
      write NewWM.WorkerOrganization.OrganizationAddress.FullAddress(),!
    }
  }
  elseif var="director"
  {
    write !, "Список руководителей: "
    set rset = ##class(%ResultSet).%New("%DynamicQuery:SQL")
    Do rset.Prepare("SELECT ID FROM SQLUser.Manager")
    Do rset.Execute()
    set i = 0
    while (rset.Next())
    {
      set i =i+1
      set id = rset.Data("ID")
      set NewWM = ##class(User.Worker).%OpenId(id)
      write !,i_". "_ NewWM.WorkerInfo()
      write !, "Адрес компании: "
      write NewWM.WorkerOrganization.OrganizationAddress.FullAddress(),!
    }
  }
  else
  {
    write !,"Код сотрудника = "_var_":",!
    Set rset=##class(%ResultSet).%New("%DynamicQuery:SQL")
    do rset.Prepare("SELECT * FROM SQLUser.Worker WHERE ID='"_var_"'")
    do rset.Execute()
    while(rset.Next())
    {
      set NewWM = ##class(User.Worker).%OpenId(rset.Data("ID"))
      write !, NewWM.WorkerInfo()
      write !, "Адрес компании: "
      write NewWM.WorkerOrganization.OrganizationAddress.FullAddress(),!
    }
  }
}


Проверка работоспособности программы


Теперь посмотрим, как работает эта программа. Запустим ее в среде Cache` Terminal с различными параметрами:



Запутим программу Prog3 с параметром "all":



Как и говорилось выше, сначала идет запись-заголовок "Список сотрудников". Так как в таблице БД список сотрудников достаточно большой, он здесь виден не весь. Получилось, что первые 6 сотрудников являются руководителями и только 7-й – нет. Но разница между выводом информации видна.

Запустим программу Prog3 с параметром "director":



Как видно из результата, выдалась информация только о руководителях:



Запустим программу Prog3 с параметром - номером:



Результат выполнения показал, что сначала вывелось для уведомления сообщение о том, какой код сотрудника был введен, а затем – информация об этом сотруднике:



1   2   3   4

Похожие:

Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconО предоставлении отчёта о проделанной работе и экологической обстановке
Приикское территориальное управление Министерства экологии и природных ресурсов рт направляет отчет о проделанной работе и экологической...
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчет о проделанной работе за 2009-2010 учебный год учителя географии и экономики Тонышевой О. В
«Создание условий для разностороннего развития личности учащихся на уроках географии и истории»
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчет о проделанной работе за 2009-2010 учебный год учителя географии и экономики Тонышевой О. В
«Создание условий для разностороннего развития личности учащихся на уроках географии и истории»
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconГодовой отчёт о проделанной работе за 2013 год клуба пос. Шудаяг му «цкс» мого «Ухта»
На базе школы №7-продолжили свою работу возрастные клубы по интересам: «Почемучки» для учащихся 1 классов; ««Егоза» для учащихся...
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчет о проделанной работе за 2006/2007 у г
...
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconПланирование воспитательной работы на 2008/2009 учебный год
Отчет классных руководителей о воспитательной работе проделанной в 1 четверти (5-6 класс)
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчет о проделанной работе в рамках недели русского языка и литературы...
М. И. Цветаевой – «К юбилею любимого писателя»: 120 лет со дня рождения русской поэтессы для учащихся 9А, 9б классов. 10Б класс «В...
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчет о проделанной работе по внедрению фгос в моу «Моркинская средняя...
Проанализированы и приведены в соответствие действующие программы доу и Моркинской сош №2 на семинаре учителей начальных классов...
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчёт о проделанной работе На 15
«а» Боровая Ю., Данилкина А., Бухарев И., Малюта А., Дремицкая А., Прокофьева М
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчёт о проделанной методической работе преподавателя истории и обществознания...

Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчет о проделанной работе за 2014 год Справка
Количество членов Приморского регионального отделения Ассоциации юристов России – 214
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчет о проделанной работе Молодежного парламента Бардымского
Заслушав отчет председателя Молодежного парламента Ибрагимова И. Д. Земское Собрание Бардымского муниципального района
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчет о проделанной работе
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Кабардино-Балкарский государственный...
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчет о проделанной работе
Совершенствовать систему работы доу по внедрению и развитию инновационных технологий в воспитательно – образовательном процессе и...
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconПлодовское сельское поселение
Позвольте мне представить отчет об итогах развития Плодовского сельского поселения и проделанной работе в 2013 году
Отчет о проделанной работе. 4 Создание классов 5 Класс «Компания» iconОтчёт о проделанной работе кружка «Основы православной культуры» с детьми 6-7 лет
Руководитель мо заместитель директора по увр директор мбоу «Лицей №9» г. Белгорода


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


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