Программирование >>  Реализация целостности данных 

1 ... 101 102 103 [ 104 ] 105 106 107 ... 124


ставлению в виде или текста и ни коем случае не заменять

графикой данные в текстовом формате. Данные rv, отчета о чисде продаж, представленные в текстовом виде, можно импортировать в другое приложение имер, Microsoft Excel) и использовать для статистического анализа и прочих манипуляций.

Отчеты на основе форм пользовательского интерфейса

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

формы пользовательского интерфейса. Некоторые отчеты в системе

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

Нередко подробный отчет, в который включена вся информация,

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

отчет. Однако часто подробные отчеты или иначе отформатированы,

иди содержат гораздо больший объем информации, чем отчеты полученные на основе отдельных форм пользовательского интерфейса. В таких случаях лучше реализовать оба вида отчетов - и подробные, и полученные из форм. Для печати разных видов отчетов можно предусмотреть разные возможности: например, по умолчанию выводить

на печать отчет, полученный на основе данной формы (для его печати пользователю нужно щелкнуть соответствующую кнопку на нане-

ли инструментов), а для печати подробного отчета - использовать

специальную команду меню.

Интерфейс для создания отчетов

Разработка средств для создания отчетов в пользовательском интерфейсе не доставляет значительных трудностей. Если для создания отчета используется команда Print Report (Печать отчета), то существует несколько способов включить ее в пользовательский интерфейс:

как команду меню, как кнопку на панели управления или как кнопку

в пользовательской форме. Как правило, в системе предусмотрено

несколько видов отчетов, и некоторые из них выводятся на печать из одной формы. Поэтому команда, при помощи которой отчет выводится на печать, должна ясно объяснять пользователю, какой именно отчет будет выведен при ее использовании.

Удобней всего включить команду в состав меню. В этом случае вполне достаточно указать названия отчетов в меню Reports (Отче-Если для печати отчетов используется кнопка на панели управ-



название отчета можно вывести на всплывающей подсказке этой кнопки. Не следует указывать во подсказке или в

названии кнопки только название отчета, который будет распечатан - обязательно укажите и команду, выполняемую при щелчке кнопки. Так, всплывающая подсказка или надпись на кнопке Print Customer Listing (Печать списка покупателей) гораздо информативнее, чем просто Customer Listing (Список пользователей). Пункты меню, напротив, должны быть как можно более краткими. Так, пункт Customer

Listing в меню Reports вполне уместен и достаточно информативен.

Данные рекомендации относительно названий пунктов меню и других элементов интерфейса соответствуют обгцепринятым стандартам, используемым при разработке интерфейса для Windows.

Теперь остается ответить еще на один, не менее важный вопрос; в каком виде отчет будет представлен пользователю. Обычно СУБД содержит не менее нескольких десятков, а то и сотен, разнообразных отчетов. Включать их все как отдельные пункты в одно меню, очевидно, бессмысленно. Поэтому чаще всего проектировщики ничивают список отчетов которые имеют непосредственное от-

ношение к текущему пользовательскому контексту. В самом деле, пользователю вряд ли понадобится распечатать список телефонных номеров всех сотрудников компании в то время, когда он будет занят вводом о сделанных клиентами заказах. Поэтому отчет,

содержащий различные справочные данные о сотрудниках компании, не следует включать в форму ввода данных о заказах.

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

Для отчетов, которые, как правило, распечатываются группами

(например, для ежемесячных) я применяю схожий метод - включаю

в интерфейс диалоговое окно, где указаны все виды отчетов, выбранные по умолчанию. Пользователи могут добавить к этому списку от-генерируемые периодически или только в определенных



ЧАСТЬ 3 Проект рояаниБ noльiaвэтe/№CжDГO йютбрфсва

ях или отменить выбор одного стандартных отчетов, включенных в список,

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

ществом. Например, часто возникает необходимость повторно распечатать один из отчетов. И тогда позволяющее выбирать как ряд отчетов, так и отдельный отчет покажется

лю очень удобным. Обработка ошибок принтера

Система должна предоставлять возможность исправлять ошибки и разрешать различные 1 инн, связанные с принтерами. Иногда реализовать эту возможность непросто, например, если пользователь захочет распечатать все отчеты, которые еше не были распечатаны.

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

Некоторые разработчики подходят к проблеме ошибок, возможных в процессе печати, так: после отправки отчета или группы отчетов на печать, система просит у пользователя правильно ли был напечатан отчет. Данный подход нельзя считать оптимальным, уже потому, что пользователь будет вынужден ждать ния печати прежде чем сможет продолжать работу с системой. Это не доставит значительных неудобств, если используется локальный принтер. Но если отчеты отправлены на сетевой принтер. где существует длинная очередь заданий на печать, то пользователь может провести не один час в бездействии, прежде чем продолжит работу. А то, что большинство отчетов все же удается ппспечатать с первого раза, делает такую задержку и вовсе неоправданной.

Я рекомендуй ты вать ошибки, связанные с принтером, как исключения - таковыми по сути, они и В ситуации, когда

требуется распечатать только те отчеты, которые еще не были нане-чатаны, придется добавлять одно поле в соответствующую базы данных. Если от пользователя требуется подтверждение, что отчеты распечатаны правильно, то очевидно, нужно добавить поле Yes/ No или булеву константу. При другом способе подтверждения печати отчета можно хранить в соответствующем нол ИЦ1)1 дату расие-



1 ... 101 102 103 [ 104 ] 105 106 107 ... 124

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