Библиографическое описание:

Смолин А. В., Головко Д. В. Пример разработки собственных отчетов в информационной системе NetSchool средствами JavaScript // Молодой ученый. — 2014. — №18. — С. 634-638.

 

Многим известно про внедрение по стране комплексной информационной системы для современной школы NetSchool — удобно, функционально, современно. Несмотря на то, что система создавалась под нужды школ, даже заведения среднего профессионального образования могут использовать ее для своих целей.

Технологический колледж ФГБОУ ВПО «ЮУрГУ» (НИУ) в течение четырёх лет поэтапно внедряет эту систему. Предыдущий, 2013–14 учебный год стал первым, когда весь персонал полностью использовал возможности этого программного продукта. Следовательно, можно говорить об окончании процесса внедрения и начале эксплуатации программного продукта. Первый год полноценного использования информационной системы показал, что вся информация, необходимая для управления образовательным процессом в системе присутствует. Однако, количество отчетов, ориентированных на требования школы, не достаточно. Система имеет встроенный конструктор отчетов, но его возможности ограничены и не позволяют создавать узкоспециализированные подробные отчеты.

В результате появилась проблема, решить которую вполне по силам языку программирования JavaScript. Все что нужно сделать — написать скрипт, который будет вместо человека перебирать нужные отчеты из системы, извлекать из них необходимую информацию и формировать на ее основе новый отчет.

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

Таблица 1

Форма отчета

Педагог

Группа

Дисциплина

Дата

1

2

30

31

 

 

 

 

 

 

 

 

 

 

 

 

Количество выданных педагогом часов

 

 

 

 

 

 

 

 

 

 

 

 

 

Все эти данные есть в нескольких отчетах, встроенных в систему, однако их форма и количество делают работу по созданию единого отчета достаточно трудоемкой. Так, в среднем, на один отчет по своей работе за месяц педагог тратит около 30 минут, что при штате в 50 педагогов превращается в 25 часов или 3 человекодня на создание единого отчета. Кроме того, при создании своей части отчета каждым педагогом не исключены ошибки, обусловленные человеческим фактором.

Чтобы понять, как решить эту проблему рассмотрим общие сведения о работе клиент-серверных систем.

Нажимая на любую кнопку формирования отчета на странице браузера, мы формируем запрос к серверу на получение определенных данных. Серверу для формирования ответной страницы необходимо знать ряд параметров, которые встраиваются в запрос в явном (GET-запрос) или не явном (POST-запрос) виде.

Составлять свой новый отчет мы решили на основе встроенного в систему отчета «Журнал группы».

Пример отправки GET запроса на страницу «Журнал группы». Все параметры разделены знаком «&». На их основе сервер заполняет страницу разными данными.

Разбор параметров запроса:

Основные параметры, которые отправляются серверу на страницу «Журнал группы»: PrintOtherAssignements, StartNewPage, AT, ADT, DDT, SCLID, ACNT, PCLID.

PrintOtherAssignements — выводить другие задания, кроме домашних.

StartNewPage –начинать каждую таблицу с новой строки.

AT — authenticationtoken, значение, которое служит для того чтобы связать пользователя (браузер) с пользователем на сервере.

ADT — начальная дата отчета, DDT — конечная дата отчета. Совокупность образует интервал.

SCLID — выбор предмета.

ACNT — количество занятий на странице.

PCLID — id(идентификационный номер в системе) группы (отличается от номера группы).

Перебирая в цикле все группы, мы сможем собрать все данные по колледжу. Для того, чтобы правильно обращаться к серверу, используя id группы, необходимо средствами браузера проанализировать страницу отчета. В браузере Mozilla Firefox для этого необходимо вызвать контекстное меню и выбрать пункт «Исследовать элемент» для окна «Группа».

Параметр Value содержит id группы, которая указана между <option> и </option>.

Далее для работы нам понадобиться специальное дополнение (аддон) (англ. Expansionpack, add-on) — дополнительное программное обеспечение, расширяющее возможности базового пакета.Разрабатываться он будет на языке JavaScript с помощью инструмента Add-onSDK от Mozilla.

Логика работы аддона будет заключаться в следующем:

1.                  На страницу с базовым отчетом «Журнал группы» добавим кнопку запуска скрипта;

2.                  Формируем GET-запрос с необходимыми данными (дату выбирает пользователь, остальное делает скрипт);

3.                  Получаем от сервера страницу с отчетом и анализируем ее, извлекая необходимую информацию (ФИО педагога, учебную группу, дисциплину, количество проведенных занятий с привязкой к дате);

4.                  Сохраняем необходимую информацию во временном хранилище;

5.                  Повторяем шаги 2–4 для всех групп;

6.                  Открываем новую вкладку в браузере и в нее помещаем сформированный отчет;

7.                  Очищаем временное хранилище.

Ниже приведены фрагменты кода с необходимыми комментариями.

Привязка запуска скрипта к странице встроенного отчета:

Теперь, каждый раз, когда будет вызывать страница «Распечатка журнала группы» скрипт /lib/main.js будет добавлять к ней /data/main.js.

Формирование GET-запроса для обращения к странице «Журнал группы» происходит путем объединения всех ранее рассмотренных параметров. Осталось только добавлять к нему каждый раз новый ID группы:

Выполнение запроса, который вернёт нам HTML код страницы «Журнал группы» с выбранной нами группой:

В отчетах, полученных с сервера, осуществляем поиск предмета и преподавателя:

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

После этого отправляем полученные данные в /lib/main.js.

После завершения цикла и получения данных по всем группам открываем новую вкладку и формируем на ней отчет.

Теперь получившийся отчет можно скопировать и использовать, например, в Excel для последующего анализа. Время перебора скриптом всех отчетов и на их базе формирование своего отчета на достаточно скромном учебном компьютере — около минуты. Напомню, что ранее этот отчет в общей сложности требовал 3 человекодня.

Итогами работы являются сразу несколько достижений:

-        значительное сокращение времени на формирование необходимого отчета;

-        исключение ошибок за счет автоматизации формирования отчета.

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

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

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

Обсуждение

Социальные комментарии Cackle