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





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

Работа с глобалами


Создадим в среде Cache` Studio процедуры для обращения к данным используя прямой доступ:

  • Список компаний - отобразить список всех названий компаний, их сфер деятельности и городов.

  • Удалить сотрудника - удаление записи о сотруднике.
    Входные параметры: имя сотрудника.
    Выходные параметры: сообщение о успешном удалении.

  • Назначить руководителя - изменение записи о руководителе.
    Входные параметры: имя сотрудника, дата и время назначения.
    Выходные параметры: сообщение о успешном обновлении.

В этом случае объекты, сохраненные в базе данных, представлены как многомерные массивы (глобалы). Для уточнения существующих индексов следует использовать среду Cache` Портал (раздел Globals, пакет USER). Имена глобалов данных содержат имена классов, соответствующих им, и заканчиваются символом 'D'. (Например, глобал данных для класса Company будет называться CompanyD.)

Исходные данные


Созданые классы:

  • Компания,

  • Адрес,

  • Сотрудник,

  • руководитель.

Ниже приведены листинги этих классов на языке Cache` Object Script.

Листинг класса Компания


Class User.Company Extends %Persistent // Создается хранимый класс
{
Property Name As %String [ Required ];
Index NameID On Name [ Unique ];
Property Business As list Of %String;
Property Address As Address;

// Описание метода класса, который создает новый объект класса Company
ClassMethod Create(Name As %String, city As %String, street As %String, building As %String, corps As %String, apart As %String) As Company [ SqlProc ]
{
  set new = ##class(Company).%New()
  set new.Name = Name
  set new.Address.City = city
  set new.Address.Street = street
  set new.Address.Building = building
  set new.Address.Corps = corps
  set new.Address.Apart = apart
  set done=new.%Save()
  quit new
}
}

Листинг класса Адрес


Class Lab1.Address Extends %SerialObject //Создается встроенный класс .
{
Property City As %String;
Property Street As %String;
Property Building As %String;
Property Corps As %String;
Property Apart As %String;

// Описание метода экземпляра класса, который возвращает адрес в виде строки
Method Address() As %String
{
  set retStr = $CASE(##this.City, "":"", :"г." _ ##this.City) _
  $CASE(##this.Street, "":"", :", ул." _ ##this.Street) _
  $CASE(##this.Building, "":"", :", д." _ ##this.Building) _
  $CASE(##this.Corps, "":"", :", корп." _ ##this.Corps) _
  $CASE(##this.Apart, "":"", :", кв." _ ##this.Apart)
  quit retStr
}
}

Листинг класса Сотрудник


Class Lab1.Worker Extends %Persistent // Создание хранимого класса
{
Property Name As %String [ Required ];
Property WorkPlace As Company [ Required ];
Property WorkPosition As %String;

// Метод экземпляра класса, возвращающий значения полей в виде строки
Method Info() As %String
{
  set retStr = ##this.Name _ " " _ ##this.WorkPlace.Name _ " " _ ##this.WorkPosition_" "
  quit retStr
}
}

Листинг класса руководитель


Class Lab1.Head Extends Lab1.Worker // Описание дочернего класса
{
Property ADate As %Date [ Required ];

// Переопределенный метод экземпляра класса, возвращающий значения полей в виде строки
Method Info() As %String
{
  set retStr = ##this.Name _ " " _ ##this.WorkPlace.Name _ " Руководитель(" _ $ZDATE(##this.ADate,4)_")"
  quit retStr
}
}

Структура и содержание таблиц базы данных


После компиляции классов можно посмотреть их структуру в среде Cache` Портал и убедиться, что создание и компиляция новых классов прошли успешно. Структура классов должна быть похожа на представленную ниже. Обратите внимание, что класс "Адрес" входит в состав таблицы для класса "Компания", поскольку он встроенный. Для хранимых классов создаются отдельные таблицы.

Структура таблицы "Company":



Структура таблицы "Worker":



Структура таблицы "Head":



Содержание таблиц базы данных


Была написана программа (листинг программы) для создания и сохранения в базе данных новых объектов. После выполнения этой программы в среде Cache` Terminal в базе данных будут содержаться некоторые объекты. Содержимое таблиц можно посмотреть в среде Cache` Портал. Содержимое таблиц должно быть аналогично представленному ниже.

Записи таблицы "Company":



Записи таблицы "Worker":



Записи таблицы "Head":


Сохранение объектов в глобалах


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

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

  • Данные сохраняются в глобале, имя которого начинается с полного имени класса, т.е. пакет.класс, при этом справа к имени глобала данных добавляется буква "D", к имени глобала индекса добавляется буква "I".

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

  • Каждый узел глобала данных имеет объектный идентификатор ID. По умолчанию, значения ID - это целые числа, значения которых обеспечиваются вызовом функции инкемента.

  • Первый элемент списковой структуры, хранимой в каждом узле, пустой. Это зарезервировано для имени подкласса. Если определить подклассы, то этот элемент будет содержать имя подкласса. Метод %OpenId использует эту информацию для полиморфного открытия корректного типа объекта, когда несколько объектов сохраняются внутри подобных экстентов.

Рассмотрим глобалы, созданные для наших классов, и их содержимое.

Просмотр глобалов в среде Cache` Портал


Для запуска "Портала" необходимо на панели задач нажать правой кнопкой мыши на значок Cache` и в выпадающем меню выбрать "Портал управления системой". Главное окно Портала выглядит как:



Затем перейти на "Глобалы",чтобы увидеть те, которые присутствуют в БД:

Имя

Расположение

Сохранять

Коллаж

 

 

lt

d:\programmes\cache\mgr\user\

Нет

Cyrillic1

Отображение

Редактировать

mcq

d:\programmes\cache\mgr\user\

Нет

Cyrillic1

Отображение

Редактировать

mqh

d:\programmes\cache\mgr\user\

Нет

Cyrillic1

Отображение

Редактировать

User.CompanyD

d:\programmes\cache\mgr\user\

Нет

Cyrillic1

Отображение

Редактировать

User.CompanyI

d:\programmes\cache\mgr\user\

Нет

Cyrillic1

Отображение

Редактировать

User.WorkerD

d:\programmes\cache\mgr\user\

Нет

Cyrillic1

Отображение

Редактировать

Для просмотра содержимого конкретного глобала следует выбрать ссылку "Отображение". Рассмотрим глобалы данных, определенные для наших классов.

Глобал данных для классов "Компания" и "Адрес"


Экземпляры класса "Компания" (листинг класса) и встроенного в него класса "Адрес" (листинг класса), которым соответствует таблица Company (содержимое таблицы), хранится в виде глобала CompanyD:



Рассмотрим структуру глобала:

^Lab1.CompanyD - последний индекс экземпляра записи. В глобале CompanyD последней записью является 5-ая запись.

^Lab1.CompanyD(5) – 5-я запись, экземпляр класса с индексом 5. Содержит список свойств экземпляра $lb("",$lb("","4","Moscow","1","Bauman"),"","BMSTU"), что означает:

  1. "" - пустое поле, зарезервировано для производных классов,

  2. $lb("","4","Moscow","1","Bauman") - список, содержащий поля встроенного класса "Адрес" (листинг класса). Состоит из полей: квартира "", дом "4", город "Moscow", корпус "1", улица "Bauman". Поля встроенного класса расположены по алфавиту.

  3. "" - пустой список сфер деятельности.

  4. "BMSTU" - название компании.

Глобал данных для классов "Сотрудник" и "Руководитель"


Экземпляры классов "Сотрудник" (листинг класса) и "Руководитель" (листинг класса), которым соответствуют таблицы Worker (содержимое таблицы) и Head (содержимое таблицы), храниятся в виде одного глобала WorkerD:



Рассмотрим структуру глобала:

^Lab1.WorkerD - последний индекс экземпляра записи. В данном случае это 14.

^Lab1.WorkerD(8) - 8-я запись, экземпляр класса с индексом 8. Содержит список свойств экземпляра , $Lb("~Lab1.head~","Name4",,"4","руководитель"), что означает:

  1. "~Lab1.head~" - название производного класса, к которому относится объект. Для объекта базового класса это поле было бы пустым.

  2. "Name4" - Имя сотрудника.

  3. "4" - ID объекта класса "Компания"- место работы (ссылка на связанный объект).

  4. "руководитель" - должность.

^Lab1.WorkerD(8,"head") - список данных, относящихся к производному классу. 8 - индекс объекта базового класса, где хранятся свойства базового класса. "head" - название производного класса. Содержит $Lb(,,60632), что означает:

  1. 60632 - дата назначения, значение даты в формате zdate.

Таблицы Worker и Head находятся в глобале WorkerD. Различия в записи: Worker записывается с указанием порядкового номера (WorkerD(1)=$Lb(…)), а Head – с указанием номера и поля со значением "head" (WorkerD(1,"head")=$Lb(…)).

Программа для работы с глобалами


Используя функции для работы с глобалами, составим программу на языке Cache` Object Script в среде Cache` Studio. Рассмотрим основные шаги алгоритма. Сначала отобразим меню программы для выбора действия:

set action = 0
while '((action=1)!(action=2)!(action=3)!(action=""))
{
read !,"Список компаний(1)/Удалить сотрудника(2)/Назначить руков.(3): ",action
}
if (action="") quit

Составить список компаний


Если была выбрана функция отображения, то выполним следующие действия. Организуем в цикле поиск значений глобала CompanyD, (в CompanyD находится номер последней записи):

For i=1:1:^Lab1.CompanyD

По каждому экземпляру проверим, что он существует:

if ($Data(^Lab1.CompanyD(i))>0)

Если да, то выполним вывод названия компании ( 4-ой позиции текущей записи):

write "/",$List(^Lab1.CompanyD(i),4)

Вывод адреса (всех элементов списка, хранящегося во 2-ой позиции текущей записи):
for k=1:1:$ListLength($List(^Lab1.CompanyD(i),2))

{ write $List($List(^Lab1.CompanyD(i),2),k)," " }

Вывод сфер деятельности (всех элементов списка, хранящегося 3-ей позиции текущей записи):

for j=1:1:$ListLength($List(^Lab1.CompanyD(i),3))

{ write $List($List(^Lab1.CompanyD(i),3),j)," " }

В итоге получаем код:

// Список компаний
if (action=1)
{
  For i=1:1:^Lab1.CompanyD
  {
    write !,$Data(^Lab1.CompanyD(i))
    if ($Data(^Lab1.CompanyD(i))>0) // Проверка на ненулевое содержание . 
     {
       // Вывод названия компании ( 4 ой позиции текущей записи)
       write "/",$List(^Lab1.CompanyD(i),4)
       // Вывод адреса (всех элементов списка, хранящегося во 2-ой позиции текущей записи)
      for k=1:1:$ListLength($List(^Lab1.CompanyD(i),2))
     {
         write $List($List(^Lab1.CompanyD(i),2),k)," "
      } 
      write "/"
// Вывод сфер деятельности (всех элементов списка, хранящегося 3-ей позиции текущей записи
    for j=1:1:$ListLength($List(^Lab1.CompanyD(i),3))
    {
       write $List($List(^Lab1.CompanyD(i),3),j)," "
    } 
   }
 }
}

Удалить сотрудника (руководителя)


Если была выбрана функция удаления, то выполним следующие действия. Запросим имя сотрудника:

read !,"Имя сотрудника: ",WName

Выполним в цикле поиск записей глобала WorkerD (в WorkerD хранится номер последней записи):

for i=1:1:^Lab1.WorkerD

Проверим на ненулевое значение записи и выполним поиск по имени (2-ая позиция):

if (($Data(^Lab1.WorkerD(i)))&&($List(^Lab1.WorkerD(i),2)=WName))

Если запись - искомая, то удалим ее. Для получения доступа к элементу списка после номера записи указывается номер по списку. При удалении индекса удаляются и вложенные глобала, поэтому достаточно удалить сотрудника, руководитель удалится автоматически:

kill ^Lab1.WorkerD(i)

В итоге получаем код:

// Удаление сотрудника
if (action=2)
{
  set Found=0
  read !,"Имя сотрудника: ",WName
// Поиск записей глобала WorkerD (в WorkerD хранится номер последней записи)
  for i=1:1:^Lab1.WorkerD 
  {
// Проверка на ненулевое значение записи и поиск по имени (2-ая позиция)
    if (($Data(^Lab1.WorkerD(i)))&&($List(^Lab1.WorkerD(i),2)=WName))
// Для получения доступа к элементу списка после номера записи указывается номер по списку.
    {
      kill ^Lab1.WorkerD(i) // Удаление текущей записи
      set Found=1
      write !,"Запись удалена!"
    }
  }
  if (Found=0)
  {
    write !,"Данный сотрудник отсутствует"
  }
}

Назначение руководителя


Если была выбрана функция назначения, то выполним следующие действия. Введем имя руководителя и дату назначения (с проверкой правильности ввода):

read !,"Имя руководителя: ",HName
read !,"Дата назначения(чч/мм/гггг): ",ADate
while '($ZDATEH(ADate,5))
{
read !,"Дата назначения(чч/мм/гггг): ",ADate
}

Выполним в цикле поиск записей глобала WorkerD (в WorkerD хранится номер последней записи):

for i=1:1:^Lab1.WorkerD

Проверим на ненулевое значение записи:

if ($Data(^Lab1.WorkerD(i)))

Выполним поиск значений записей, которые совпадают с искомыми значениями:

if (($Data(^Lab1.WorkerD(i,"Head")))&&($List(^Lab1.WorkerD(i),2)=HName))

Для совпадающих записей выполним: задание должности (значение для 5-ой позиции текущей записи глобала) :

set $List(^Lab1.WorkerD(i),5)="руководитель"

Задание даты (значение для 3-ей позиции текущей записи глобала):

set $List(^Lab1.WorkerD(i,"Head"),3)=$ZDATEH(ADate,5)

Создадим запись для производного класса (1-ая позиция записи) Head:

set $List(^Lab1.WorkerD(i),1)="~Lab1.Head~"

Измененим должность (запись в 5-ой позиции):

set $List(^Lab1.WorkerD(i),5)="руководитель"

Создадим запись в таблице Head с заданием даты. Для этого используется запись (i,"Head"), где i- номер записи. Используется ф-ия ListBuild:

set ^Lab1.WorkerD(i,"Head")=$ListBuild(,,$ZDATEH(ADate,5))

В итоге получаем код:

//-----------------------------------------------------------
//Назначение руководителя
if (action=3)
{
  read !,"Имя руководителя: ",HName
  read !,"Дата назначения(чч/мм/гггг): ",ADate
  while '($ZDATEH(ADate,5))
  {
    read !,"Дата назначения(чч/мм/гггг): ",ADate
  }
  for i=1:1:^Lab1.WorkerD // Поиск записей глобала WorkerD
  {
    if ($Data(^Lab1.WorkerD(i))) // Проверка на ненулевое значение записи
    {
// Поиск значений записей, которые совпадают с искомыми значениями
      if (($Data(^Lab1.WorkerD(i,"Head")))&&($List(^Lab1.WorkerD(i),2)=HName))
      {
// Задание должности (значение для 5-ой позиции текущей записи глобала)
        set $List(^Lab1.WorkerD(i),5)="руководитель"
// Задание даты (значение для 3-ей позиции текущей записи глобала)
        set $List(^Lab1.WorkerD(i,"Head"),3)=$ZDATEH(ADate,5)
        write !,"Запись руководителя изменена!"
      }
      if ($List(^Lab1.WorkerD(i),2)=HName) // Поиск имени (2-ая позиция)
      {
// Создание записи для связного класса (1-ая позиция записи) Head
        set $List(^Lab1.WorkerD(i),1)="~Lab1.Head~"
// Изменение должности (запись в 5-ой позиции)
        set $List(^Lab1.WorkerD(i),5)="руководитель"
// Создание записи в таблице Head с заданием даты. Для этого используется запись (i,"Head"), где i- номер записи. Используется ф-ия ListBuild
         set ^Lab1.WorkerD(i,"Head")=$ListBuild(,,$ZDATEH(ADate,5))
         write !,"Запись изменена!"
      }
    }
  }
}


Листинг программы работы с глобалами


for
{
// Меню программы
set action = 0
while '((action=1)!(action=2)!(action=3)!(action=""))
{
  read !,"Список компаний(1)/Удалить сотрудника(2)/Назначить руков.(3): ",action
}
if (action="") quit

//-----------------------------------------------------------
//Список компаний
if (action=1)
{
// Поиск значений глобала CompanyD
// (в CompanyD находится номер последней записи)
For i=1:1:^Lab1.CompanyD
{
  write !,$Data(^Lab1.CompanyD(i))
  if ($Data(^Lab1.CompanyD(i))>0) // Проверка на ненулевое содержание .
  {
// Вывод названия компании ( 4 ой позиции текущей записи)
    write "/",$List(^Lab1.CompanyD(i),4)
// Вывод адреса (всех элементов списка, хранящегося во . // 2-ой позиции текущей записи)
    for k=1:1:$ListLength($List(^Lab1.CompanyD(i),2))
    {
      write $List($List(^Lab1.CompanyD(i),2),k)," "
    }
    write "/"
// Вывод сфер деятельности (всех элементов
//списка, хранящегося 3-ей позиции текущей записи
    for j=1:1:$ListLength($List(^Lab1.CompanyD(i),3))
    {
       write $List($List(^Lab1.CompanyD(i),3),j)," "} }
    }
  }
//-----------------------------------------------------------
//Удаление сотрудника
if (action=2)
{
  set Found=0
  read !,"Имя сотрудника: ",WName
// Поиск записей глобала WorkerD (в WorkerD хранится номер последней записи)
  for i=1:1:^Lab1.WorkerD
// Проверка на ненулевое значение записи и поиск по имени (2-ая позиция)
  if (($Data(^Lab1.WorkerD(i)))&&($List(^Lab1.WorkerD(i),2)=WName))
/ Для получения доступа к элементу списка после номера записи указывается номер по списку.
  {
    kill ^Lab1.WorkerD(i) // Удаление текущей записи
    set Found=1
    write !,"Запись удалена!"
  }
}
if (Found=0) {write !,"Данный сотрудник отсутствует"}
}
//-----------------------------------------------------------
//Назначение руководителя
if (action=3)
{
  read !,"Имя руководителя: ",HName
  read !,"Дата назначения(чч/мм/гггг): ",ADate
  while '($ZDATEH(ADate,5))
  {
    read !,"Дата назначения(чч/мм/гггг): ",ADate
  }
  for i=1:1:^Lab1.WorkerD // Поиск записей глобала WorkerD
  {
    if ($Data(^Lab1.WorkerD(i))) // Проверка на ненулевое значение записи
    {
// Поиск значений записей, которые совпадают с искомыми значениями
      if (($Data(^Lab1.WorkerD(i,"Head")))&&($List(^Lab1.WorkerD(i),2)=HName))
      {
// Задание должности (значение для 5-ой позиции текущей записи глобала)
        set $List(^Lab1.WorkerD(i),5)="руководитель"
// Задание даты (значение для 3-ей позиции текущей записи глобала) 
        set $List(^Lab1.WorkerD(i,"Head"),3)=$ZDATEH(ADate,5)
        write !,"Запись руководителя изменена!"
      }
      if ($List(^Lab1.WorkerD(i),2)=HName) // Поиск имени (2-ая позиция)
      {
// Создание записи для связного класса (1-ая позиция записи) Head
        set $List(^Lab1.WorkerD(i),1)="~Lab1.Head~"
// Изменение должности (запись в 5-ой позиции)
        set $List(^Lab1.WorkerD(i),5)="руководитель"
// Создание записи в таблице Head с заданием даты. Для этого используется запись (i,"Head"), где i- номер записи. Используется ф-ия ListBuild (см. приложение)
        set ^Lab1.WorkerD(i,"Head")=$ListBuild(,,$ZDATEH(ADate,5))
        write !,"Запись изменена!"
      }
    }
  }
}


Экспорт/ Импорт глобалов


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

Для проведения экспорта необходимо зайти в Портал управления системой: [Домашняя страница] > [Глобалы] > [Экспорт глобалов]. Выбрать глобалы, которые необходимо экспортировать:



Результат выполнения:


Для импорта глобалов необходимо зайти в Портал управления системой: [Домашняя страница] > [Глобалы] > [Импорт глобалов]. Выбрать файл, из которого необходимо импортировать глобалы:



Результат выполнения:



В случае удачного импорта появится сообщение:


Список используемой литературы.


  1. «Постреляционная СУБД Cache» - http://www.citforum.ru/database/articles/cache.shtml

  2. «Взаимодействие СУБД Cache с внешним миром» - http://www.citforum.ru/database/cache/cache_ex/

  3. СУБД Cache. Объектно - ориентированная разработка приложений. Учебный курс [В. Кирстен, М. Ирингер, Б. Рериг, П. Шульте]



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
Поиск