Десять шагов в microsoft_access (835787), страница 8
Текст из файла (страница 8)
Для этого воспользуемся пунктом меню «Правка Копировать», а затем «Правка Вставить». В открывшемся диалоговом окне дадим копии имя «отчет_приход». Затемпоочередно откроем обе формы в режиме конструктора и внесем в нихнебольшие корректировки. В форме «фирма» удалим поля «дата1» и«дата2» (рис. 83).Рис. 83. Форма «фирма»Рис. 84. Форма «отчет_приход»В форме «отчет_приход» установим подпись: «Отчет о поставках», удалим поля «фирма» и «заведующий», а также изменим расположение полей и содержание надписей к ним (рис.
84). Еще раз обратим Ваше внимание на то, что подпись в верхней части формы и имя формы – разные65вещи. Смысл преобразований будет более понятен, когда мы организуем вызов из этого окна отчетов за заданный период времени.7.2. Группа переключателей. Откроем форму «отчет_приход» в режиме конструктора. Поместим в форму элемент управления «Группа переключателей» (см. Шаг второй, рис. 15). Откроется диалоговое окно(рис.
85).Рис. 85. Подписи к переключателямУ нас пока создано два отчета. Возможно, Вы создали больше. В любомслучае каждому отчету мы поставим в соответствие переключатель.Введем подписи к двум переключателям (рис. 85) и нажмем «Далее».Теперь система потребует задать переключатель, используемый поумолчанию. Здесь Вы можете поступать по своему усмотрению.
Нажмите «Далее». Вы увидите список, в котором каждой подписи соответствует натуральное число. Система по умолчанию в каждой строке устанавливает число, равное номеру строки. Мы имеем право изменитьзаданные системой значения, но не хотим. Поэтому нажмем «Далее».Оставим переключатель (рис.
86) в положении «Сохранить значение длядальнейшего использования» и нажмем «Далее».66Рис. 86. Выбор варианта использования значения переключателяРис. 87. Выбор типа элемента управленияВ диалоговом окне (рис. 87) мы можем заменить переключатель флажком или кнопкой, но не будем этого делать. Поставим оформлениегруппы «приподнятое» (здесь автор не настаивает) и нажмем «Далее».Зададим подпись к группе переключателей «Выбор формы отчета» инажмем «Готово». Выйдем из режима конструктора и откроем форму врабочем режиме (рис.
88). Если Вы создали, например, пять отчетов, тоу Вас сейчас должно быть пять переключателей с соответствующимиподписями. Испытаем переключатели в работе. В положении «Да» всегда находится только один переключатель. Правда, само по себе изменение положения переключателя не влечет за собой ровным счетом никаких действий. Эту проблему мы решим в следующем пункте, а покададим группе переключателей имя.67Рис. 88.
Группа переключателей в форме «отчет_приход»Рис. 89. Свойства группы переключателейКонечно, система при создании любого элемента управления непременно дает ему имя, но имя типа «Кнопка7» или «Группа16» нам ни о чемне говорит. Поэтому в режиме конструктора два раза щелкнем левойклавишей мышки по рамке группы переключателей, как мы поступаемвсегда, когда хотим открыть окно свойств элемента управления. Обратите внимание, что щелкнуть надо именно по рамке (рис.
89)! Еслиформа является контейнером для элементов управления, то группа пе-68реключателей, в свою очередь, является контейнером для переключателей. Поэтому щелкнув клавишей в другом месте, Вы можете открытьсвойства надписи или, например, конкретного переключателя. Теперь вокне свойств группы переключателей установим имя «Ключ» и покинемконструктор.7.3. Макросы. Нам предстоит использовать новый объект Microsoft Access – макрос, то есть структурированное описание одного или нескольких действий, которые должно выполнить приложение Access в ответ наопределенное событие. Макрос строится из макрокоманд. Microsoft Access предоставляет в распоряжение пользователя свыше 40 макрокоманд, охватывающих большой набор стандартных действий, таких какоткрытие таблиц, форм, выполнение запросов, выбор пунктов меню итак далее. Войдем в раздел «Макросы» и нажмем кнопку «Создать».Откроется окно макросов в виде таблицы в две колонки: «Макрокоманда» и «Примечание».
Их названия говорят сами за себя. Добавим в таблицу еще две колонки, воспользовавшись пунктами меню «Вид Имена макросов» и «Вид Условия». В первой строке первой колонки зададим имя макроса: «отчет_приход». Макрос, который мы хотимсоздать, должен запускаться из формы «отчет_приход». В зависимостиот значения элемента управления, которому мы в предыдущем пунктедали имя «Ключ», макрос должен выдавать тот или иной отчет.В столбце «Условия» введем условие вывода первого отчета:«[Forms]![отчет_приход]![Ключ]=1». Обратите внимание, первый отчетформируется, если значение объекта с именем «Ключ» равно 1.
Чтобысослаться на этот объект, недостаточно его имени, так как в разныхформах могут встречаться одноименные элементы управления. Поэтомув условии мы указываем, что объект принадлежит форме, даем названиеформы и уже потом имя объекта. В столбце «Макрокоманда» разворачиваем меню и выбираем макрокоманду «ОткрытьОтчет». В нижнейчасти окна макросов слева расположена таблица аргументов макрокоманд. Здесь мы задаем имя отчета «приход_подробный» и режим «Просмотр». Аналогично оформим строку для второго отчета (рис.
90). Прижелании в столбце «Примечание» можно указать, какие действия вызывают заданные макрокоманды. Сохраним макрос под именем «Макрос1» и вернемся в раздел «Формы». Откроем в режиме конструктораформу «отчет_приход», на панели элементов отожмем «Кнопку мастера» (рис. 15), чтобы отключить «Мастера по созданию элементов управления».69Рис. 90. Макрос «отчет_приход»Возьмем с панели элементов кнопку и бросим в форму. Теперь – никакого диалога! Просто в форме появится кнопка, нажатие на которую невызывает никаких действий. Откроем окно свойств кнопки, на заставке«Макет» щелкнем по строке «Рисунок», выберем рисунок (рис. 91)и нажмем «ОК».Рис.
91. Выбор рисунка для кнопкиВыберем заставку «События» и щелкнем клавишей по строке «Нажатиекнопки». Нажав в правой части строки стрелку, направленную вниз,развернем меню и выберем в качестве действия «Макрос1.отчет_приход» (рис. 92). Закроем окно свойств, выберем наиболееудачное расположение кнопки и выйдем из конструктора. Теперь в рабочем режиме форма будет иметь вид, представленный на рис. 93. Убедитесь, что при нажатии на кнопку в правой части формы на экран выводится отчет, соответствующий установленному положению переключателя.70Рис. 92.
Событию «Нажатие кнопки» приписано действиеРис. 93. Для получения выбранного отчета достаточно нажать кнопку слеваТочно так же, создав соответствующую группу переключателей и макрос, можно организовать вывод любого количества отчетов.Теперь настало время приступить к усовершенствованию созданных отчетов.7.4. Условия отбора данных. При создании отчета «приход_итоговый»в качестве источника данных взят запрос «итоги приход по поставщикам», для которого источником данных является в свою очередь запрос«приход по стоимости».
Запрос «приход по стоимости» построен на основе запроса «приход_Запрос», а запрос «приход Запрос» фактическисодержит все поля и записи таблицы «приход», упорядоченные по возрастанию даты. Источником данных отчета «приход_подробный» является непосредственно таблица «приход». Поскольку наборы полей втаблице «приход» и в запросе «приход Запрос» совпадают один к одному, мы можем в отчете «приход_подробный» заменить источник данных. Откроем указанный отчет в режиме конструктора, а затем окно71свойств отчета. Окно свойств отчета открывается точно так же, как иокно свойств формы.
Выберем заставку «Данные» и щелкнем клавишейв строке «Источник записей». Развернем меню и выберем в качестве источника «приход Запрос» (рис. 94).Рис. 94. Смена источника данных в отчете «приход_подробный»Закроем окно свойств и конструктор. Теперь, открыв отчет для просмотра, Вы можете убедиться, что ровным счетом ничего не изменилось. Зато теперь оба отчета основаны на данных запроса «приход Запрос»! Перейдем в раздел «Запросы» и откроем «приход Запрос» в режиме конструктора.Рис. 95. Условие отбора записей по датеВ строке «Сортировка» поля «дата» зададим условие отбора записей:Between [Forms]![отчет_приход]![дата1] And [Forms]![отчет_приход]![дата2].Оператор «Between» задает диапазон значений поля.
Запрос производитотбор записей, которые в соответствующем поле имеют значение, попадающее в заданный диапазон. Например, мы можем отобрать записи опоставках в течение отчетного периода: с 1.01.05 по 31.01.05. Вместо«Between» мы могли бы использовать два неравенства, объединенныхоператором «And»:>=[Forms]![отчет_приход]![дата1] And <=[Forms]![ отчет_приход]![дата2].Открыв форму «отчет_приход», задайте интересующий Вас диапазондат и убедитесь, что оба отчета отражают данные о поставках за заданный диапазон дат.72Рис. 96. Дополнительная информация в отчете7.5. Дополнительная информация в отчете.
Осталось внести в отчетдве небольших корректировки: поместить в заголовок отчета названиефирмы, а в примечание отчета – поле для подписи. В форме «отчет_приход» установим переключатель в положение «подробный отчето приходе», откроем соответствующий отчет и переведем его в режимконструктора. С панели элементов возьмем элемент управления «поле»и поместим его в заголовок отчета.Надпись, соответствующую полю, удалим. В случае необходимости расширим заголовок и сдвинем вниз название отчета. Поместим в поле выражение=[Forms]![отчет_приход]![фирма], то есть название фирмы.