Как быстро создать журнал учета присутствующих

от автора

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



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

На мой взгляд самое «вкусное» в этой задаче создать графическую форму, при этом особо не заморачиваться. Что касается базы данных, то для хорошего программиста это задача на 5 минут.

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

Поэтому будем вносить информацию в клетку журнала только в тот момент если эта информация действительно возникает. Допустим у вас есть веб приложение в котором реализована форма ввода

После того как участник заполняет свои данные и нажимает кнопку ЗАРЕГИСТРИРОВАТЬСЯ заносим данные в в json файл

[ {"Name":"Ivanov", "Date":"01.01.2019", "grade": 1} {"Name":"Petrov", "Date":"01.01.2019", "grade": 1} {"Name":"Ivanov", "Date":"02.01.2019", "grade": 1} {"Name":"Petrov", "Date":"03.01.2019", "grade": 1} {"Name":"Ivanov", "Date":"06.01.2019", "grade": 1} {"Name":"Ivanov", "Date":"07.01.2019", "grade": 1} {"Name":"Ivanov", "Date":"08.01.2019", "grade": 1} {"Name":"Ivanov", "Date":"09.01.2019", "grade": 1} {"Name":"Ivanov", "Date":"10.01.2019", "grade": 1} {"Name":"Ivanov", "Date":"12.01.2019", "grade": 1} {"Name":"Maksimova", "Date":"08.01.2019", "grade": 1} {"Name":"Maksimova", "Date":"09.01.2019", "grade": 1} {"Name":"Maksimovav", "Date":"10.01.2019", "grade": 1} {"Name":"Maksimova", "Date":"13.01.2019", "grade": 1} {"Name":"Semenov", "Date":"01.02.2019", "grade": 1} {"Name":"Maksimova", "Date":"02.01.2019", "grade": 1} ] 

Автоматически добавляем поле с датой когда кнопка была нажата и полем grade которое означает отметку, например от 2-5 если это оценка или 1 если это отметка присутствия на семинаре. Если вы хотите ставить колы своим ученикам 🙂 то тогда вместо единицы можно использовать -1. В рассматриваем случае остановимся на 1, тк это удобно использовать для подсчета общего количества участников семинара.

Далее я воспользуюсь программой FastReport для построения отчета, его можно скачать по ссылке.

Сам отчет в редакторе FastReport Designer выглядит так

Для его построения используется компонент МАТРИЦА в который с помощью нескольких кликов заносятся 2 поля Name по вертикали Date по горизонта. Поле grade заносим в ячейку.

Для того чтобы журнал отражался в привычной форме добавляем несложный скрипт

действие которого направлено на то, чтобы отражать отсутствующих в привычной форме с пометкой H. Запускаем отчет

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


ссылка на оригинал статьи https://habr.com/ru/post/481886/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *