Учет и контроль
Как странно порой поворачивается история. В СССР в пятидесятые годы кибернетика (и связанное с ней программирование) была признана "буржуазной лженаукой", а ведь все достижения ее, как ничто иное, максимально соответствовали желаниям руководства страны все учитывать и контролировать. Это к тому, что любая СУБД, помимо удобного хранения и ввода данных, как правило, имеет и очень мощный механизм получения отчетов.
Наверно, никому сегодня не нужно дополнительно объяснять, что такое отчет. Вы повседневно сталкиваетесь с обычным вопросом - "сколько?". Сколько вы продали торосов эскимосам, желательно как в штуках, так и в кубометрах? Сколько погонных метров лапши высшего сорта поставлено на склад соседнего бакалейного сельпо? Сколько всего автомобилей иностранного производства было угнано из охраняемых гаражей за последние сутки? И так далее и тому подобное. Нужно заметить, что существует теснейшая связь между объемом хранимой в любой базе информации и количеством всевозможных вариантов вопроса "сколько" по ее адресу.
Теоретически, каждый такой вопрос относительно легко решается при помощи механизмов запроса, так как "сколько" и есть вопрос с некоторым набором параметров. Однако, за исключением запросов-действий, обычный механизм запроса оказывается чрезмерно избыточным. Дело в том, что ответ на этот запрос не предполагает обратной реакции пользователя по корректировке данных, попавших в ту или иную выборку. Это вызвало необходимость создания в инструментальном наборе СУБД специального механизма формирования отчетов. На первый взгляд, любой отчет, точнее процедура его создания очень похожа на конструирование обычного запроса. Тем не менее, разработка отчета имеет целый ряд важных индивидуальных особенностей, о которых в дальнейшем и пойдет речь.
Учитывая вышесказанное, полагаю, вы уже поняли, что длинный путь к хорошему отчету начинается, естественно, с разработки самого обычного запроса-выборки. Предположим, что директора нашего гипотетического книжного магазина внезапно заинтересовал состав имеющейся в продаже литературы.
Вне зависимости, сиюминутное это желание или элемент постоянного систематического контроля, вы должны обратиться к таблице ЛИТЕРАТУРА, в которой хранится вся необходимая информация. Тут вполне уместно воспользоваться стандартной процедурой формирования простого запроса. В этом вам поможет уже накопленный ранее опыт.
Перейдите на вкладку Запросы и нажмите экранную кнопку " СОЗДАТЬ". Это вызовет к жизни мастер конструирования запросов (см. рис. 1). В предложенном списке выберите вариант " Простой запрос" и перейдите к следующему этапу. Тут потребуется указать перечень и последовательность отображаемых полей, а также наименование таблицы или запроса-источника (см. рис. 2). После еще нескольких несложных шагов вы получите обычную, ничем не примечательную выборку (см. рис. 3). Все поля на месте, и они заполнены искомыми данными. Но... Но это еще очень далеко от того, что хотел бы увидеть на своем столе наш гипотетический директор.
Он-то все же хочет увидеть, как принято говорить, хорошую бумагу со всеми необходимыми пояснениями, а не какую-то маловразумительную табличку. Поэтому переходим ко второму этапу. Он заключается в разработке уже собственно отчета. Для этого нужно перейти на другую вкладку, Отчеты, где повторится уже несколько изученная вами процедура.
Вначале, если вы ничего не делали, она совершенно пуста, а из всех имеющихся на ней экранных кнопок доступна только одна, " СОЗДАТЬ". Ею и следует воспользоваться. Ее нажатие приводит к появлению на экране нового мастера (см. рис. 4), отдаленно напоминающего мастер разработки запросов. В правом его окне предлагается список возможных вариантов "развития запросов", а в расположенном ниже поле с выпадающим списком " Выберите в качестве источника данных таблицу или запрос" стандартным методом нужно указать, откуда брать информацию для наполнения самого отчета. Мастер и ведет себя практически аналогично. Перебирая варианты отчета, пользователь может увидеть на расположенной слева пиктограмме схематическое представление внешнего вида результата, который в итоге будет получен. Для особых и нетипичных случаев имеется "Конструктор". Остальные ситуации считаются типовыми, и для них разработаны специальные варианты, в количестве пяти штук. Среди них имеется даже два особо специфических. " Мастер диаграмм" позволяет, минуя лишнюю рутину, автоматически сгенерировать отчет, в котором цифровые данные будут представлены в виде наглядной диаграммы. " Почтовые наклейки" разработаны специально для облегчения генерации специальных этикеток "на что-нибудь", например писем или бандеролей. Теоретически, аналогичную работу выполняет Microsoft Word, если его связать с таблицей Microsoft Excel, наполнение которой, в частности, можно импортировать из таблицы Microsoft Excel.
Но зачем городить столь сложный огород, если получение этикеток собственной разработки является весьма и весьма частой задачей в области баз данных.
В нашем случае ничего особенного не требуется, а потому можно смело выбирать второй вариант, " Мастер отчетов", использовав в качестве источника данных только что созданный запрос-выборку. Последующая процедура также весьма и весьма похожа на разработку обычного запроса (см. рис. 5). В выпадающем поле " Таблицы/запросы", соответственно, программа дублирует ранее указанное имя таблицы или запроса. Если нет - не поздно подправить. Окно " Доступные поля" показывает "из чего выбирать". Выбор производится при помощи небольших экранных кнопок со стилизованными стрелками, расположенных между окнами. Кстати, тут действует то же правило, что и при формировании запроса. В полученном результате поля будут следовать не в том порядке, в котором они расположены в таблице или запросе-источнике, а в том, в каком вы их перенесете из окна " Доступные поля" в окно " Выбранные поля". Об этом весьма нелишне помнить в процессе работы, так как производственная необходимость часто полностью не совпадает с необходимостью оформительской.
После того как Microsoft Access 97 "немного подумает" и перейдет к следующему этапу, на экране монитора появится следующее рабочее окно (см. рис. 6). Оно означает, что компьютер, точнее СУБД, предлагает вам задать правила для автоматической сортировки записей, которые будут занесены в данный отчет. Предполагается, что в результате работы запросов полученная выборка может иметь несколько хаотичный порядок, и ориентироваться в такой выборке достаточно проблемно. В выпадающем списке следует выбрать наименование поля, по которому необходимо сортировать данные, а расположенная справа маленькая экранная кнопка с буквами "А", "Z" и стрелкой обозначает направление сортировки: либо по возрастанию, либо по убыванию. Как говорится, на выбор стреляющего. Допускается сортировать как по всем параметрам (правда, мастер позволяет задать только четыре условия), так и игнорировать сортировку, если того требуют обстоятельства.
Далее - "ГОТОВО" и все, действительно готово (см. рис. 7). На экране монитора появляется то, что компьютер "готов" немедленно отправить на печать. Это весьма и весьма неплохо подготовленная и отформатированная страничка, которую можно "на доклад" сразу, как только она выползет из принтера. В левом верхнем углу большими буквами красуется наименование таблицы, ставшей источником данных. Потом - расположенные в строку заголовки столбцов. Под ними, отделенные стильной декоративной линией, располагаются строки с данными из базы. Не хватает разве что подписи автора.
На этом формирование отчета закончено. Его можно сохранить - для этого придется заглянуть в меню ФАЙЛ, так как на панели инструментов нужная пиктограмма отсутствует. Его можно тут же отправить на печать, ради чего он, собственно, и разработан. В любом случае, отчет полностью готов. Хотя, в принципе, вам ничто не мешает перевести его в режим конструктора и малость подправить согласно собственным взглядам на дизайн, вкусам и пристрастиям. Кстати, есть в редакторе и свои скрытые прелести. Если, например, заранее приготовить несколько не законченную форму отчета и сохранить ее под любым именем, то в дальнейшем ее можно использовать как своего рода собственный шаблон. Только будет чуть-чуть больше возни с переназначением источника данных для каждого отображаемого поля. Но зато вы можете разработать, таким образом, свой собственный фирменный стиль, который будет сохраняться буквально во всем, вплоть до статистических отчетов и всяких там памятных и докладных записок.
В дальнейшем вышеописанный механизм можно использовать в автоматических макросах или модулях, разрабатываемых для конкретных пользовательских приложений. Именно так на самом деле и работают все самодельные и не совсем самодельные базы данных. В частности, мой опыт общения с программой RS Money российской фирмы R Style наводит на мысль, что в основе этой замечательной программы лежит нечто аксессоподобное, если вообще не Microsoft Access собственной персоной. Во всяком случае отчеты, автоматически генерируемые этой программой учета личных финансов, очень и очень похожи на отчеты, создаваемые СУБД Microsoft Access.
Александр Запольскис
Наверно, никому сегодня не нужно дополнительно объяснять, что такое отчет. Вы повседневно сталкиваетесь с обычным вопросом - "сколько?". Сколько вы продали торосов эскимосам, желательно как в штуках, так и в кубометрах? Сколько погонных метров лапши высшего сорта поставлено на склад соседнего бакалейного сельпо? Сколько всего автомобилей иностранного производства было угнано из охраняемых гаражей за последние сутки? И так далее и тому подобное. Нужно заметить, что существует теснейшая связь между объемом хранимой в любой базе информации и количеством всевозможных вариантов вопроса "сколько" по ее адресу.
Теоретически, каждый такой вопрос относительно легко решается при помощи механизмов запроса, так как "сколько" и есть вопрос с некоторым набором параметров. Однако, за исключением запросов-действий, обычный механизм запроса оказывается чрезмерно избыточным. Дело в том, что ответ на этот запрос не предполагает обратной реакции пользователя по корректировке данных, попавших в ту или иную выборку. Это вызвало необходимость создания в инструментальном наборе СУБД специального механизма формирования отчетов. На первый взгляд, любой отчет, точнее процедура его создания очень похожа на конструирование обычного запроса. Тем не менее, разработка отчета имеет целый ряд важных индивидуальных особенностей, о которых в дальнейшем и пойдет речь.
Учитывая вышесказанное, полагаю, вы уже поняли, что длинный путь к хорошему отчету начинается, естественно, с разработки самого обычного запроса-выборки. Предположим, что директора нашего гипотетического книжного магазина внезапно заинтересовал состав имеющейся в продаже литературы.
Вне зависимости, сиюминутное это желание или элемент постоянного систематического контроля, вы должны обратиться к таблице ЛИТЕРАТУРА, в которой хранится вся необходимая информация. Тут вполне уместно воспользоваться стандартной процедурой формирования простого запроса. В этом вам поможет уже накопленный ранее опыт.
Перейдите на вкладку Запросы и нажмите экранную кнопку " СОЗДАТЬ". Это вызовет к жизни мастер конструирования запросов (см. рис. 1). В предложенном списке выберите вариант " Простой запрос" и перейдите к следующему этапу. Тут потребуется указать перечень и последовательность отображаемых полей, а также наименование таблицы или запроса-источника (см. рис. 2). После еще нескольких несложных шагов вы получите обычную, ничем не примечательную выборку (см. рис. 3). Все поля на месте, и они заполнены искомыми данными. Но... Но это еще очень далеко от того, что хотел бы увидеть на своем столе наш гипотетический директор.
Он-то все же хочет увидеть, как принято говорить, хорошую бумагу со всеми необходимыми пояснениями, а не какую-то маловразумительную табличку. Поэтому переходим ко второму этапу. Он заключается в разработке уже собственно отчета. Для этого нужно перейти на другую вкладку, Отчеты, где повторится уже несколько изученная вами процедура.
Вначале, если вы ничего не делали, она совершенно пуста, а из всех имеющихся на ней экранных кнопок доступна только одна, " СОЗДАТЬ". Ею и следует воспользоваться. Ее нажатие приводит к появлению на экране нового мастера (см. рис. 4), отдаленно напоминающего мастер разработки запросов. В правом его окне предлагается список возможных вариантов "развития запросов", а в расположенном ниже поле с выпадающим списком " Выберите в качестве источника данных таблицу или запрос" стандартным методом нужно указать, откуда брать информацию для наполнения самого отчета. Мастер и ведет себя практически аналогично. Перебирая варианты отчета, пользователь может увидеть на расположенной слева пиктограмме схематическое представление внешнего вида результата, который в итоге будет получен. Для особых и нетипичных случаев имеется "Конструктор". Остальные ситуации считаются типовыми, и для них разработаны специальные варианты, в количестве пяти штук. Среди них имеется даже два особо специфических. " Мастер диаграмм" позволяет, минуя лишнюю рутину, автоматически сгенерировать отчет, в котором цифровые данные будут представлены в виде наглядной диаграммы. " Почтовые наклейки" разработаны специально для облегчения генерации специальных этикеток "на что-нибудь", например писем или бандеролей. Теоретически, аналогичную работу выполняет Microsoft Word, если его связать с таблицей Microsoft Excel, наполнение которой, в частности, можно импортировать из таблицы Microsoft Excel.
Но зачем городить столь сложный огород, если получение этикеток собственной разработки является весьма и весьма частой задачей в области баз данных.
В нашем случае ничего особенного не требуется, а потому можно смело выбирать второй вариант, " Мастер отчетов", использовав в качестве источника данных только что созданный запрос-выборку. Последующая процедура также весьма и весьма похожа на разработку обычного запроса (см. рис. 5). В выпадающем поле " Таблицы/запросы", соответственно, программа дублирует ранее указанное имя таблицы или запроса. Если нет - не поздно подправить. Окно " Доступные поля" показывает "из чего выбирать". Выбор производится при помощи небольших экранных кнопок со стилизованными стрелками, расположенных между окнами. Кстати, тут действует то же правило, что и при формировании запроса. В полученном результате поля будут следовать не в том порядке, в котором они расположены в таблице или запросе-источнике, а в том, в каком вы их перенесете из окна " Доступные поля" в окно " Выбранные поля". Об этом весьма нелишне помнить в процессе работы, так как производственная необходимость часто полностью не совпадает с необходимостью оформительской.
После того как Microsoft Access 97 "немного подумает" и перейдет к следующему этапу, на экране монитора появится следующее рабочее окно (см. рис. 6). Оно означает, что компьютер, точнее СУБД, предлагает вам задать правила для автоматической сортировки записей, которые будут занесены в данный отчет. Предполагается, что в результате работы запросов полученная выборка может иметь несколько хаотичный порядок, и ориентироваться в такой выборке достаточно проблемно. В выпадающем списке следует выбрать наименование поля, по которому необходимо сортировать данные, а расположенная справа маленькая экранная кнопка с буквами "А", "Z" и стрелкой обозначает направление сортировки: либо по возрастанию, либо по убыванию. Как говорится, на выбор стреляющего. Допускается сортировать как по всем параметрам (правда, мастер позволяет задать только четыре условия), так и игнорировать сортировку, если того требуют обстоятельства.
Далее - "ГОТОВО" и все, действительно готово (см. рис. 7). На экране монитора появляется то, что компьютер "готов" немедленно отправить на печать. Это весьма и весьма неплохо подготовленная и отформатированная страничка, которую можно "на доклад" сразу, как только она выползет из принтера. В левом верхнем углу большими буквами красуется наименование таблицы, ставшей источником данных. Потом - расположенные в строку заголовки столбцов. Под ними, отделенные стильной декоративной линией, располагаются строки с данными из базы. Не хватает разве что подписи автора.
На этом формирование отчета закончено. Его можно сохранить - для этого придется заглянуть в меню ФАЙЛ, так как на панели инструментов нужная пиктограмма отсутствует. Его можно тут же отправить на печать, ради чего он, собственно, и разработан. В любом случае, отчет полностью готов. Хотя, в принципе, вам ничто не мешает перевести его в режим конструктора и малость подправить согласно собственным взглядам на дизайн, вкусам и пристрастиям. Кстати, есть в редакторе и свои скрытые прелести. Если, например, заранее приготовить несколько не законченную форму отчета и сохранить ее под любым именем, то в дальнейшем ее можно использовать как своего рода собственный шаблон. Только будет чуть-чуть больше возни с переназначением источника данных для каждого отображаемого поля. Но зато вы можете разработать, таким образом, свой собственный фирменный стиль, который будет сохраняться буквально во всем, вплоть до статистических отчетов и всяких там памятных и докладных записок.
В дальнейшем вышеописанный механизм можно использовать в автоматических макросах или модулях, разрабатываемых для конкретных пользовательских приложений. Именно так на самом деле и работают все самодельные и не совсем самодельные базы данных. В частности, мой опыт общения с программой RS Money российской фирмы R Style наводит на мысль, что в основе этой замечательной программы лежит нечто аксессоподобное, если вообще не Microsoft Access собственной персоной. Во всяком случае отчеты, автоматически генерируемые этой программой учета личных финансов, очень и очень похожи на отчеты, создаваемые СУБД Microsoft Access.
Александр Запольскис
Компьютерная газета. Статья была опубликована в номере 23 за 1999 год в рубрике soft :: субд