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