Отчёт по оценкам в Excel

Отчёт по оценкам в Excel

от Артём Шварц -
Количество ответов: 13

Извините, что снова задаю глупый вопрос.

Из журнала оценок вывожу отчёт в Excel. Но в отчёте выводится не всё, что мне нужно (например, не выводит поле "город"). Можно ли как-то изменить поля таблицы?

В ответ на Артём Шварц

Re: Отчёт по оценкам в Excel

от Evgeniy Schuetz -

Здесь я вижу два варианта:

  1. Configurable Report и писать SQL-запросы под себя.
  2. Слегка модифицироватьфайл /grade/export/xls/grade_export_xls.php  - я, например, сегодня вместо вывода e-mail вывел в эту колонку username. Если Вам надо город вывести, то под себя в двух местах поменяйте названия полей.
В ответ на Артём Шварц

Re: Отчёт по оценкам в Excel

от Vadim Tabunshchik -
Изображение пользователя Developers

Добавить поле "Город" на страницу предпросмотра при экспорте в Excel.

  1. Добавить в function display_preview (файл \moodle\grade\export\lib.php, стр. 200) след. строку:
            echo '<table>';
            echo '<tr>';
            echo '<th>'.get_string("firstname")."</th>".
                 '<th>'.get_string("lastname")."</th>".
                 '<th>'.get_string("idnumber")."</th>".
                 '<th>'.get_string("city")."</th>". // Добавить колонку с городом
                 '<th>'.get_string("institution")."</th>".
                 '<th>'.get_string("department")."</th>".
                 '<th>'.get_string("email")."</th>";
  2. Ниже, в этой же функции, ~265-266 стр., добавить:
    echo "<td>$user->firstname</td><td>$user->lastname</td><td>$user->idnumber</td><td>$user->city</td><td>$user->institution</td><td>$user->department</td><td>$user->email</td>";

Добавить поле "Город" в файл Excel.

  1. function print_grades (файл \moodle\grade\export\xls\grade_export_xls.php) - добавить поле "Город":
    /// Print names of all the fields
            $myxls->write_string(0,0,get_string("firstname"));
            $myxls->write_string(0,1,get_string("lastname"));
            $myxls->write_string(0,2,get_string("idnumber"));
            $myxls->write_string(0,3,get_string("city"));
            $myxls->write_string(0,4,get_string("institution"));
            $myxls->write_string(0,5,get_string("department"));
            $myxls->write_string(0,6,get_string("email"));
            $pos=7;
  2. Ниже, в этой же функции:
                $myxls->write_string($i,0,$user->firstname);
                $myxls->write_string($i,1,$user->lastname);
                $myxls->write_string($i,2,$user->idnumber);
                $myxls->write_string($i,3,$user->city);
                $myxls->write_string($i,4,$user->institution);
                $myxls->write_string($i,5,$user->department);
                $myxls->write_string($i,6,$user->email);
                $j=7;

Зеленый - добавлено, красный - исправлено, оранж - комменты

В ответ на Vadim Tabunshchik

Re: Отчёт по оценкам в Excel

от Evgeniy Schuetz -

Вадим, ну это уже совсем правильно!

НО! Ведь помнил что эта фича настраиваемая! Нашёл (в 2.2 - в 1.9 не смотрел).

Администрирование - Пользователи - Права - Политики пользователя - и там блок Отображать персональные данные.

Вот то, что там ставится в "Отображать" идёт в отчёт об оценках в курсе и экспортируется в Excel без модификации кода. - Правда не все поля там можно сделать отображаемыми, потому вариант с модификацией остаётся, но, недостаток - отслеживать обновления. Либо делать еще один свой вариант  экспорта с учётом вашего кода.

В ответ на Vadim Tabunshchik

Re: Отчёт по оценкам в Excel

от Лилия Ч. -

Добавить поле "Город" на страницу предпросмотра при экспорте в Excel.
У нас тоже возникла такая необходимость в Moodle 2.9 и 3.1 (две платформы). К сожалению, эта возможность не реализована в этих версиях тоже. Подскажите, какой выход? Спасибо.
В ответ на Лилия Ч.

Re: Отчёт по оценкам в Excel

от Vadim Tabunshchik -
Изображение пользователя Developers

«Администрирование ► Оценки ► Общие настройки» в параметр grade_export_userprofilefields дописываете название поля, которое нужно включить в экспортируемый файл. Например, так: lastname,firstname,city

На странице в таблице журнала оценок вы это поле не увидите, но в Excel-файле оно будет.

В grade_export_customprofilefields можно вписывать названия полей, кот. вы создавали сами на странице «Администрирование ► Пользователи ► Учетные записи ► Поля профиля пользователя»

 

В ответ на Vadim Tabunshchik

Re: Отчёт по оценкам в Excel

от Лилия Ч. -

В grade_export_customprofilefields можно вписывать названия полей, кот. вы создавали сами на странице «Администрирование ► Пользователи ► Учетные записи ► Поля профиля пользователя»

Можно об этом поподробнее. У нас не получилось.


В ответ на Лилия Ч.

Re: Отчёт по оценкам в Excel

от Evgeniy Schuetz -

Пробовал на 3.1 - работает. По сравнению с ранними версиями стало значительно проще!

В поле "Поля профиля пользователя в экспортируемой оценке" в значение добавил city и в Excel-отчете это поле появляется. Т.е. через это поле в отчет можно выводить поля из таблицы mdl_user.

Поле grade_export_customprofilefields используется для вывода в отчет дополнительных полей профиля пользователя, которые вы сами создаете (если создаете), они не входят в таблицу mdl_user, а находятся в  mdl_user_info_field

В ответ на Evgeniy Schuetz

Re: Отчёт по оценкам в Excel

от Лилия Ч. -

Поняли, что у нас не получалось: таблицу Excel с нужным полем ГОРОД мы видим, когда смотрим журнал оценок в блоке НАСТРОЙКИ по всему курсу, т.е.:
Курс--Оценки--Экспорт (Excel)
Там выбираем элемент курса, который нам нужен (Тест) и СКАЧАТЬ. Тогда все хорошо.
Но... Если мы смотрим оценки непосредственно в результатах теста, скачиваем там Excel таблицу, там совершенно другие поля.
Можно ли изменить именно эту таблицу? 



Приложение рис.png
В ответ на Лилия Ч.

Re: Отчёт по оценкам в Excel

от Vadim Tabunshchik -
Изображение пользователя Developers

В таблице результатов тестирования можно вывести только поля, отмеченные галками в параметре «Отображать персональные данные (showuseridentity)». Эти же поля попадут и в Excel-файл. Города тут нет. Или используйте другое поле из доступных для города, или нужно править код.

ЗЫ: в Excel поля 'institution', 'department', 'email' попадают вне зависимости от настроек showuseridentity. (Пояснение из исходников: «When downloading, some extra fields are always displayed (because there's no space constraint) so do not include in extra-field list.»)

В ответ на Vadim Tabunshchik

Re: Отчёт по оценкам в Excel

от Vadim Tabunshchik -
Изображение пользователя Developers

Не «отходя от кассы», напишу, как добавить поле «Город» в таблицу попыток и в файл Excel с результатами тестирования.

Открываем файл admin/settings/users.php, ищем «'department'  => new lang_string('department'),» (в 2.8.9 это строка 189, в 3.0-3.2 это строка 190, остальные не проверял) и выше её вписываем:

'city'        => new lang_string('city'),

Всё. В настройке showuseridentity появляется поле «Город», отмечаем птицей и получаем результат в таблице попыток и в скачиваемом Excel.

r223

r9

В ответ на Evgeniy Schuetz

Re: Отчёт по оценкам в Excel

от Ник Ник -

добрый день,

версия Moodle 3.1.3 (Build: 20161114)

добавил кастомные поля для отчета по успеваемости - телефон и школу

но в отчете экселя так они  и не появились.

подскажите ,  что делаю не так?



Приложение мудл 3.jpg