|
Программирование >> Реализация целостности данных
Создание отчетов ГЛАВА Отчеты и средства, позволяющие их создавать - очень важная, едва ли не важнейшая, часть системы. разнородные сведения, хранимые в базе данных, не представляют ценности для пользователей, им нужны систематизированные данные. Эта глав шщена средствам, позволяющим получать из довольно хаотичной массы данных, хранимых в памяти компьютерной системы, связную информацию. ПРИМЕЧАНИЕ Под отчетом я отнюдь не подразумеваю всего лишь вывод на печать некоей информации, прсдставляюшей интерес дня пользователя. Я вкладываю в это понятие гораздо более широкий смысл, а именно: предоставление пользователе маии г г на основе даннгх, хранимых в компьютерной системе, в удобном для восприятия виде. То есть не только как распечатанный отчет, но и как набор результатов, отображаемый в виде таблицы или списка на экране компьютера. На заре эпохи компьютеризации, когда стоимость компьютера во много раз превышала годовую зарплату среднего клерка и время, затраченное на выполнение вычислений, ценилось поистине на вес золота, был весьма распространен простой подход к созданию отчетов: компьютерные системы выдавали несколько стандартных отчетов с заданной периодичностью. Если же требовалось изменить стандартную форму отчета или создать новую, приходилось долго осаждать сотрудников отдела информационных систем, поскольку очередь жаждущих получить от них такую программу, выстраивалась на несколько лет вперед. Задание создать что-то вроде вот этого стандартного отчета, только отсортированного по полю или отчет, где отражались бы суммарные по регионам , проще было дать секретарю, чем программисту. Сегодня ситуация изменилась с точностью до наоборот. Компьютеры ото все дешевеют, а рабочее время ного секретаря ценится весьма дорого. Теперь, если пользователю нужно получить что-то вроде вот этого стандартного отчета, только с некоторыми он, несомненно, обратится не к сек- ретарю, а к компьютерной системе. Соответственно, и у разработчиков баз данных прибавилось забот. Им теперь приходится удовлетворять требования пользователей в минимальный срок. Но ведь это гораздо лучше, чем корпеть над пишущей машинкой, не правда ли? В компьютерных системах, основанных на базах данных, как правило, сочетают два подхода к созданию отчетов. Первый - разработчики заранее определяют, какие отчеты понадобятся пользователям, и предоставляют им возможность генерировать по готовым шаблонам так называемые стандартные отчеты (standard reports). Второй -пользователям средства, при помощи которых они могут составлять и генерировать самостоятельно или произвольные отчеты (ad hoc reports). В этой главе мы рассмотрим и стандартные, и произвольные отчеты. Но сначала я хочу более подробно остановиться на механизмах сортировки, поиска и фильтрации данных, используемых при создании отчетов. Сортировка, поиск и использование фильтров Средствами операторов SQL выполнить поиск, сортировку и фильтрацию данных достаточно легко, соответствующие критерии задают с помощью ключевые мш WHERE или ORDER BY оператора SELECT. Но чтобы пользователи могли задавать критерии самостоятельно, необходимо предусмотреть промежуточный слой программных компонентов. В самом деле, не вынуждать же их составлять запросы к данным при языка SQL, логика которого сильно отличает- ся от конструкций языка, на котором мыслят и общаются обычные люди. Поэтому начинающие пользователи так часто ошибаются при составлении SQL-занросов. Приведу только один пример. Допустим, для составления отчета менеджеру по продажам нужен список всех дистрибьюторов компании в штатах Вайоминг и Флорида. Очевидно, что продумывая этот отчет, менеджер пожелает включить в список всех дистрибьюторов в штате Флорида и всех дистрибьюторов в штате Вайоминг. Но в операторе SELECT языка SQL условие WHERE, формирующее список, будет выглядеть примерно так: WH ERE State Wyoming OR State = Florida . Как видите, здесь используется логический оператор OR (или), а не логический оператор AND (и). Подобные лингвистические тонкости могут сбить с толку любого новичка! Конечно, обучить пользователей основам языка SQL не так уж сложно. Я знаю нескольких разработчиков баз данных, которые действуют именно так, и весьма успешно. Но все же гораздо лучше предоставить пользователям интуитивный интерфейс, позволяющий составлять запросы, - такое решение не только значительно облегчит им работу с системой, но и позволит вам сэкономить силы, затрачиваемые на составление документации. К счастью, чтобы разработать подобный интерфейс, не нужно начинать с нуля . В Microsoft Access уже имеются соответствующие интерактивные средства, позволяющие пользователям создавать запросы к данным с использование критериев SQL. Конечно, прямой перенос механизмов пользовательского интерфейса из одного приложения в другое не всегда возможен, однако само наличие подобных средств оказывает большую помощь разработчику, позволяя ему использовать уже готовый образец. В Microsoft Visual Basic аналогичных средств существует, однако их реализация займет не так уж много времени. Сортировка данных в Access реализован простой и удобный интерфейс, позволяющий быстро отсортировать данные в нужном порядке. Для указания способа сортировки имеются две команды - Sort Ascending (Сортировка в порядке возрастания) и Sort Descending (Сортировка в порядке убы-isainoij. Щелкнув мышью элемент интерфейса, по которому нужно выполнить сортировку, пользователь затем выбирает соответствующую команду в меню Records (Записи) Можно также щелкнуть соответствующую кнопку на панели управления. Фильтр по выделенному фрагменту в одном поле Для фильтрации данных в одном поле в Access имеются две команды: фильтр по выделенному фрагменту Filter By Selection (Фильтр по выделенному) и фильтр исключения выделенного фрагмента Filter Excluding Selection (Исключить выделенное). Эти команды похожи нате, что используются для сортировки данных - Sort Ascending и Sort Descending. Когда пользователь выделяет все содержимое одного из полей формы или задает фокус ввода на это поле и затем выбирает команду Filter By Selection, Access применяет фильтр по этому полю, отбирая только те записи, которые в точности соответствуют выделенному значению. На SQL условие WHERE, эквивалентное этому
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |