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

1 ... 75 76 77 [ 78 ] 79 80 81 ... 124


Лрввктироваииа пс1Л*.зовнтоль(жого и терфе1Ю8

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

В большинстве систем есть формы, соответствующие основным сущностям этой системы: например, формы Customers (Покупатели). /га/нс/5(Продукты) и Saks Orders (Счета-фактуры). Вам нужно определить, каким образом пользователи будут выбирать ную им запись из набора. Я рекомендую разработать единые правила выбора записей и перехода loii записи к другой, использовать их во всех формах и без крайней необходимости не нарушать.

По умолчанию в свя:шнных формах Access и Visual Basic выбира ется первая запись из нижележащего набора. Форма также содержит кнопки, позволяющие перемещаться от одной записи набора к другой. Однако но разным причинам вам может понадобиться отказаться от этих стандартных свойств интерфейса. Например, чтобы в форме отображалась всего одна и были предусмотрены механизмы, позволяющие выбрать записи, которые следует отобразить. Таким механизмом может быть отдельная форма для поиска записи или комбинированное окно, позволяющее выбрать нужную запись. На рис. 12-3 показан пример, заимствованный из стандартной базы данных Access Developer Solutions и иллюстрирующий этот подход. В нем возможность выбрать нужную запись реализована при комбинированного окна Edit Products.

Uniii, III ъ\ал Г

л i

Рис. 12-3. Пользователи могут выбрать тись о клиенте

Итак, ваше решение отказаться от стандартного механизма нере-мещения между записями вполне оправдано. Но, сделав однажды

ЧАСТЬ 3



ГЛАВА 1 рфейс ка ад яодмаеатеяей и системой

выбор, вы должны ег иваться, и использовать тот же самый

механизм во всех формах системы. Согласитесь, неудобно работать с

системой, где перемещение между записями в форме Customers (Покупатели) реализовано при помоши стандартных кнопок; в форме Sales Order (Счет-фактура) для выбора нужной записи требуется щелкнуть кнопку Find Order (Найти заказ): а в форме Products (Товары) - данные представлены в табличном виде.

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

Другая область, где также нужна последовательность - представление составных сущностей. Если в вашей модели некие сущности представлены несколькими таблицами, участвующими в связи ко многим (классический пример - сущность Sales Order), то вы должны соблюдать определенные правила относительно того, как эти сущности будут отображаться пользователям. Когда те элементы бланка заказа, которые, будучи напечатанными на превра-

щаются в строки, представлены в виде табличном виде, а адрес и телефон в виде списка - это непоследовательно.

К сожалению, последовательный подход в этой области реализовать гораздо сложнее, особенно если нужно работать с несколькими наборами записей одновременно. Форма, в которой одна таблица содержит данные о клиенте, вторая - адреса, тья - сведения о заказанных товарах, выглядит ужасно. Проявите - разместите эти таблицы на отдельных вкладках формы или используйте отдельные всплывающие формы, в которых содержатся таблицы. Можно выбрать два метода отображения данных и придерживаться их максимально последовательно.

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

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



меняют, если нужно, чтобы данные в форме заказа клиента можно б1ло изменять только до тех нор, пока заказанный товар не будет отправлен покупателю. Затем заказ изменяет свой статус и становится архивным документом, не изменению; данные, введенные в эту форму, архивируются и хранятся как справочная информация. Некоторые разработчики предусматривают дополнительную проверку, был ли отправлен покупателю данный заказ, когда пользователь хочет редактировать записи в этой форме. Подобная тактика приемлема, только если для всех форм в системе выполняется такая же предварительная проверка.

Я могу предложить лучшее решение: разрешите непосредственное редактирование данных в нолях этой формы, но блокируйте запись (то есть сделайте все ноля недоступными для редактирования), если пользователь открывает форму уже отправленного клиенту заказа. Этот способ, хотя не столь прост в реализации, весьма эффективен. Кроме того, он позволяет реализовать непосредственное редактирование данных в полях всех остальных форм в системе, где не применяется блокировка архивных записей.

Итоги

В этой главе мы познакомились с основными ипами, лежащими в основе проектирования пользовательского интерфейса. Мы начали обзор методов проектирования с рассказа о моделЯ)с пользовательского интерфейса: ментальной модели пользователя (представлений

пользователя о системе и о том, как она работает), модели реализации

(того, что реально происходит в системе) и декларируемой модели

(того, что система сообщает пользователю о происходящем процессе).

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

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

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

интерфейса.

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



1 ... 75 76 77 [ 78 ] 79 80 81 ... 124

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