Как стать автором
Поиск
Написать публикацию
Обновить

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

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



В журнале указывается список людей по вертикали и даты по горизонтали. Причем если человек был на первом занятии но отсутствовал на последующих, то он автоматически заносится в журнал и делается пометка 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. Запускаем отчет



Времени затрачено не много, а результат очень качественный. Данный отчет автоматически переносится на следующую страницу что очень удобно для больших ведомостей и заботится об этом не нужно — это программа делает сама. Всем рекомендую пользоваться подобными отчетам для автоматизации повседневных процессов.
Теги:
Хабы:
Всего голосов 12: ↑5 и ↓7+1
Комментарии31

Публикации

Ближайшие события