Программирование >>  Разработка пользовательского интерфейса 

1 ... 128 129 130 [ 131 ] 132 133 134 ... 147


ЗагйПйвок групп ы

I; Г

Мм ЧашяЛ со(ыР ] Jkv> j I

Мтмжчвя........... jHifcnfli

buws.........

1 ГП I I I \ п

при мече HK<e группы

Рис. 11.20.

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

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

= Sum(cost)

Обратите внимание, что выражение обязательно должно начинаться со знака равенства. В противном случае Конструктор отчета воспримет его как параметр и потребует ввести его значение перед форматированием отчета. Так как мы разместили элемент управления в Примечании группы, то нам не надо заботиться о том, сумму по каким странам он будет вычислять. Сумма будет вычислена именно по группе. Теперь имеет смысл, выбрав команду Предварительный просмотр, вывести на экран макет нашего отчета. В окне предварительного просмотра он должен выглядеть так, как это представлено на рис. 11.21.



£4пл QpHu Вллп iffvt J)tH 2

!]t4fi[I Н1-чпг (jl-:kKdhni.]hijca!-

№9lu

Итff m я

1411

csrathhh nil


I Сида i I

Рис. 11.21.

Перед нами осталась последняя задача - вывести флаг каждой страны в заголовке группы и динамически изменить цвет шрифта у элемента управления, выводящего название страны в заголовке группы. Добавим в заголовок элемент управления Рисунок. Нас интересует его свойство Picture.

Элементы управления отчетов не имеют свойств событий, но эти свойства присутствуют у каждой из областей отчета, в том числе и у заголовков групп. Это свойства OnFormat, OnPrint, OnRetreat.

Событие Format (Форматирование) происходит при форматировании части отчета, к которой он относится, то есть на внутреннем уровне происходит установка свойств, которые мы задали при конструировании отчета. Имеет смысл иногда сделать эти свойства динамическими, чтобы при форматировании каждой группы отдельные элементы получали разные свойства в зависимости от того, к какой группе они относятся.

Запишите следующий код для процедуры события форматирования заголовка группы:

Private Sub ЗаголовокГруппы0 Format(Cancel As Integer, FormatCount As Integer) Dim kolor As String kolor = country name If Trim(kolor) = Германия Then

Me!country name.ForeColor = 255 risrep.Picture = c:\project book\Flggerm.ico

End If

If Trim(kolor) = Италия Then

Me!country name.ForeColor = RGB(0, 255, 0) risrep.Picture = c:\project book\FlgItaly.ico

End If

If Trim(kolor) = США Then

Me!country name.ForeColor = RGB(0, 0, 255) risrep.Picture = c:\project book\Flgusa01.ico

End If End Sub

Теперь при выводе нашего отчета для предварительно просмотра будет изучаться значение элемента управления country name и после этого устанавливаться свойство ForeColor (цвет шрифта) объекта country name и свойство Picture объекта risrep, который в нашем случае является элементом управления для вывода значка с национальным флагом страны, являющейся заголовком группы. В итоге получается отчет, который представлен на рис. 11.22.



£)Пл J]ptat4 Влцрч чкт Cfpot Дин 2

jjj f<\ Ola j Эти*I


Рис. 11.22.

Использование событий придаст вашим отчетам значительную гибкость, вы сможете использовать различные итоги в зависимости от ситуации, скрывать и выводить суммы, целые колонки полей. Создав один отчет, вы фактически получите несколько его вариантов.

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

В заключение мы хотели бы дать вам следующие рекомендации при построении отчета в Access:

максимально используйте мастеры построения отчетов;

создавайте свои автоформаты;

используйте шаблоны, если необходимо построить большое количество схожих отчетов;

используйте перекрестные запросы, когда попадаете в затруднительную ситуацию (например, если необходимо значения какого-нибудь поля сделать заголовками колонок);

используйте параметрические запросы, чтобы уменьшить время предварительной обработки и сэкономить бумагу, а тем самым и кислород для себя и своих потомков;

активно используйте свойства событий как самого отчета, так и его составных частей.

СУБД Access позволяет чрезвычайно легко организовать печать отчетов из формы. Для этого действительно достаточно нескольких щелчков мышью.

Откройте какую-либо форму в Конструкторе формы. Выделите на панели элементов кнопку Кнопка . Щелкните мышкой на форме в месте, где должен находиться левый верхний угол будущей кнопки для печати отчета. Автоматически запустится Мастер Создание кнопок . Выберите в списке категорий пункт Работа с отчетом , а в списке действий - Печать отчета . На следующем шаге из списка необходимо выбрать имя одного из созданных ранее отчетов. Далее останется выбрать значок, которым будет украшена кнопка, и назначить ей имя, например cmdPrint.

В форме появится кнопка, при нажатии на которую будет печататься требуемый отчет. Если в Конструкторе формы вы посмотрите на код, который будет выполняться при наступлении события OnClick для этой кнопки (нажатие кнопки), то увидите следующий текст:

Sub cmdPrint Click()

On Error GoTo Err cmdPrint Click

Dim stDocName As String

stDocName = Account

DoCmd.OpenReport stDocName, acNormal Exit cmdPrint Click:



1 ... 128 129 130 [ 131 ] 132 133 134 ... 147

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика