Студопедия Главная Случайная страница Задать вопрос

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Настройка формы Журнал Учителя




  1. Для того, чтобы лучше понять, как настраивать работу формы, которую только сейчас создадим, необходимо ввести хотя бы некоторые данные в журнал. И сделать это на «низком уровне», то есть без формы, а прямо в таблице. Откройте таблицу Журнал оценок и заполните ее 20-30 записями. Причем старайтесь поставить оценки так, чтобы ученики были с нескольких (хотя бы трех) классов, с хотя бы двух параллелей, и чтобы каждый учитель-предметник «поставил» бы какие-то оценки хотя бы двум-трем ученика с разных классов. Это важно для понимания того, как настраивать фильтры формы Журнал Учителя. (Например, пусть по географии оценки получат два ученика с 10 Б и три с 11 А).
  2. После ввода закройте таблицу.
  3. Перейдите к формам и Создайте при помощи мастера форму. Из таблицы Журнал оценок возьмите поля Фамилия, Предмет, Оценка, Дата. На последнем шаге назовите ее «Журнал учителя – оценки». Нажмите Готово.
  4. Форма отображает данные как форма, а нам нужно, чтобы она отображала данные в виде таблицы. Закройте форму, перейдите в режим конструктора и откройте форму. Перейдите на Макет и в поле Режим по умолчанию. Поставьте Режим таблицы. Закройте конструктор и откройте форму.
  5. Как видите, эта форма отображает данные о том, какие оценки по данному предмету получили ВСЕ ученики ВСЕХ классов со ВСЕХ параллелей, то есть она отображает ВСЕ содержимое таблицы Журнал оценок. Для учителя такая форма неудобна – ведь гораздо удобнее работать с журналом одного класса, а не всей школы! Необходимо добавить фильтры отбора. Но сначала сделаем так, чтобы при нажатии на кнопку в форме Журнал учителя открывалась эта форма – Журнал учителя – оценки. Для этого создадим микропрограмму – макрос.
  6. Выйдите в Макросы и нажмите кнопку Создать. В первой строке выберите заготовку макроса ОткрытьФорму. Внизу, в аргументах макроса, выберите имя формы Журнал учителя – оценки,режим – Таблица, режим данных – изменение - ведь учитель имеет право не только добавлять новые оценки но и старые корректировать. Закройте окно макроса и сохраните его под именем ОткрытьЖурналУчителя(без пробелов).
  7. Запустите макрос. Как вы видите, его действие равно выполнению команды пользователя по открытию формы. Теперь добавим кнопку открытия.
  8. Откройте в режиме конструктора главную форму Журнал учителя. Увеличьте место НАД (а не под!) примечанием формы. Поставьте на это место кнопку, настройте ее (Разное - Выполнить макрос – Далее – ОткрытьЖурналУчителя – Далее – Текст «Открыть журнал» - Готово. Закройте конструктор и откройте форму Журнал учителя.
  9. Выберите предмет, класс, параллель и нажмите кнопку Открыть журнал.
  10. Форма открывается, но… Там опять все те же ВСЕ оценки по всем предметам. Закройте обе формы.
  11. Добавим фильтры отбора – ведь данные для отбора у нас уже есть в полях со списками Класс: и Параллель. Откройте форму Журнал учителя – оценки в режиме конструктора.
  12. Щелкните по левому верхнему углу формы и перейдите на вкладку Данные.
  13. Щелкните по кнопке справа от поля «Источник строк». Ответьте ДА на вопрос о построителе запросов. В появившемся запросе в первом столбце введите таблица «Журнал оценок», поле «Фамлия», во втором: «Журнал оценок», «Предмет», в третьем: «Журнал оценок», «Оценка», В четвертом: «Журнал оценок», «Дата». Однако этих данным мало для запроса.
  14. В окне запроса, где отображаются таблицы-источники (а сейчас там всего одна – Журнал оценок) щелкните правой кнопкой мыши и выберите Добавить таблицу и добавьте таблицуУченики.
  15. В пятом поле запроса введите: «Ученики», «Класс», в шестом: «Ученики», «Параллель». Теперь в запросе все данные, которые нам нужны для фильтрации общей таблицы.
  16. В запросе в строке Условие отбора в поле Предмет щелкните правой кнопкой мыши и выберите «Построить». Появится окно Построителя выражений. Он помогает автоматически построить выражение запроса без ошибок. В первом окне построителя выберите Forms – все формы, выберите форму Журнал учителя и выберите объект, который будет источником отбора – поле Код предмета. Нажмите Вставить и ОК.
  17. Аналогично в поле запроса Класс при помощи построителя введите выражение по классам - Forms – все формы, выберите форму Журнал учителя и выберите объект, который будет источником отбора – поле Списокклассов.
  18. Аналогично для поля запроса Параллель введите выражение запроса по параллелям.
  19. Закройте запрос и конструктор. Проверим действие фильтра. Откройте главную форму, которую создали ранее – Журнал Учителя. Выберите преподавателя, класс и параллель. Нажмите кнопку Открыть журнал.
  20. Как видно, в дочерней форме теперь отображаются только те ученики, которые соответствуют введенным в главной форме преподавателю, предмету, классу и параллели. Смените в главной форме преподавателя, или класс, или предмет. Нажмите кнопку Открыть журнал.Однако в журнале ничего не изменилось! Чтобы увидеть журнал другого класса или предмета, нужно эту форму закрыть и заново открыть. Проверьте!
  21. Сделаем так, чтобы окно журнала с оценками открывалось в модальном режиме – то есть, пока его не закроешь, нельзя вернуться на форму, это окно породившую. Закройте обе формы, откройте в режиме конструктора макрос ОткрытьЖурналУчителяи измените режим окна на Окно диалога. Закройте макрос и вновь откройте форму и проверьте модальность окна журнала оценок.
  22. Попытайтесь изменить данные формы Журнал учителя – оценки. Если все работает, попытайтесь вводить новые оценки. Обратите внимание на недочеты –
    • при выборе учеников появляется список ко ВСЕМИ учениками, а надо, чтобы в списке были те, кто учится в выбранном классе.
    • Хоть журнал открылся для выбранного предмета, предмет в поле предметы все равно придется вводить – иначе данные не запомнятся в общей таблице оценок, вернее, запомнятся, но с предметом 0.
  23. Исправим сначала второй недочет. Закройте формы и создайте новый макрос. В первой строчке введите заготовку макроса ЗадатьЗначение. Внизу, в аргументах макроса в поле элемент введите [Формы]![Журнал учителя - оценки]![Предмет], а в поле Выражение введите [Формы]![Журнал учителя]![Код].Этот макрос заменяет поле предмета данными из родительской формы с поля код предмета. Закройте макрос, назвав его Подстановка.
  24. Когда его запускать? Тогда, когда пользователь изменяет запись в поле Фамилия формы Журнал учителя – оценки. Откройте в режиме конструктора форму Журнал учителя – оценки. Правой кнопкой щелкните на поле Фамилия и выберите Свойства. Перейдите на вкладку События и в поле Изменение выберите только что созданный макрос - Подстановка. Теперь при вводе или изменении фамилии поле Предмет автоматически заполнится выбранным предметом!
  25. Теперь исправим первый недочет. Продолжая оставаться в режиме настройки поля Фамилия, перейдите на вкладку Данные и щелкните по кнопке справа от поля Источник строк.
  26. В появившемся запросе, в третьей (пустой) колонке выберите Имя таблицы – Ученики, Поле – Класс, а в условии отбора введите [Forms]![Журнал учителя]![Списокклассов].Это заставитпрограмму при формировании списка в список брать только тех учеников, класс которых совпадает с выбранным в списке классов. В четвертой колонке запроса веведите запрос по полю Параллель таблицы Ученики. Условие отбора [Forms]![Журнал учителя]![СписокПараллелей]. Уберите с созданных полей галочки вывода на экран. Закройте запрос. Выделите поле Предмет вместе с его надписью и удалите. Теперь, после автозаполнения, оно нам не нужно. Закройте конструктор.
  27. Запустите форму. Откройте журнал выбранного класса. Как вы видите, теперь при заполнении новых оценок в списке подстановок фамилий и имен учеников имеются только те ученики, которые учатся в данном классе. Вроде бы, наконец-то недочетов нет!

Запомните! Недочеты в программе есть и будут! Крупные мы исправили. Но программист всегда должен видеть в своем произведении недочеты и пытаться их исправить, приблизить программу к идеалу. Однако идеал в принципе недостижим, и это прекрасно, ибо для истинно творческих людей бесконечное приближение к идеалу в своем творчестве и есть смысл их жизни!!!

Задание – разберитесь, какие еще недочеты имеются в базе данных. Поговорите с учителем, как можно избавиться от некоторых.

Однако хватит высокопарных (хотя и искренних) философствований. Перейдем к созданию формы Классный Журнал







Дата добавления: 2014-11-10; просмотров: 340. Нарушение авторских прав

Studopedia.info - Студопедия - 2014-2017 год . (0.005 сек.) русская версия | украинская версия