Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Разработка корпоративных приложений в Access 2002 - Литвин П.

Литвин П. Разработка корпоративных приложений в Access 2002 — Спб.: Питер, 2002. — 848 c.
ISBN 5-314-00181-0
Скачать (прямая ссылка): razrabotkaprilojeniy2002.djvu
Предыдущая << 1 .. 50 51 52 53 54 55 < 56 > 57 58 59 60 61 62 .. 357 >> Следующая

Разработка форм
К формам клиент-серверного приложения также нужен особый подход. Тщательно продумайте, каким образом в них будет выполняться поиск данных и навигация по записям. Особое внимание уделите источникам записей.
Выбор связанных и свободных полей
После анализа всех требований к данным и определения источника записей формы все ее поля нужно связать с данными. По мере возможности старайтесь связывать их с источником записей самой формы, не создавая отдельного источника данных для каждого поля в отдельности. Помните, что в клиент-серверной среде каждый источник данных представляет собой отдельное подключение к серверу.
Если вы все же решите включить в форму элементы управления с отдельными источниками данных, постарайтесь по крайней мере ограничить в них количество строк. Если на момент открытия формы критерий отбора данных такого
Разработка форм
137
элемента управления еще не известен, скройте этот элемент, пока пользователь не укажет, что в нем выводить, и не даст явную команду, щелкнув, предположим, на специальной кнопке. Всегда помните, что выполнение запроса на выборку, да еще и без предложения WHERE - просто ненужная нагрузка на сеть. Особенно важно помнить об этом при разработке подчиненных форм, поскольку они являются более сложными, чем списки или поля со списками.
Выбор подходящей структуры формы
Очень часто формы Access дают возможность перейти к нужной записи и выполнить какие-то действия. Организовать это можно разными способами, причем ваша задача - выбрать тот из них, который позволит обойтись меньшим подмножеством полей для выбора записи, и только после ее выбора заполнить набор записей подробной информацией.
Несвязанная главная форма и связанная подчиненная
Если вам нужно предоставить пользователю интерфейс для поиска и редактирования данных, проще всего поступить так: создать самостоятельную форму для редактирования данных, а затем поместить ее в качестве подчиненной в другую, несвязанную форму. Источником записей для подчиненной формы можно сделать запрос со ссылками на поля главной формы, а не связывать формы через основные и подчиненные поля. В главную форму поместите элементы управления, с помощью которых пользователь сможет задать условие отбора записей для подчиненной формы. Назначьте им такие значения по умолчанию, чтобы при открытии главной формы подчиненная оказывалась пустой. Если вы используете поле со списком, список или какой-нибудь другой механизм выбора, поместите в форму еще одно скрытое поле для определения условия отбора и заполняйте его в обработчике события AfterUpdate соответствующего элемента управления. Чтобы пользователь мог указать, что он закончил формирование условия отбора и хочет увидеть результат, предоставьте ему кнопку для этой цели прямо в форме или на панели инструментов либо включите соответствующую команду в меню. Если данные в списке меняются редко или не меняются вообще (например, когда список содержит информацию о типах заказов, допустимые коды и т. п.), их лучше загружать с сервера при запуске приложения. Более динамичную информацию придется загружать при каждом открытии формы - лишь при этом условии пользователь будет уверен в том, что получает самые последние данные.
Использование динамических источников данных
Описанной выше модели формы для поиска и редактирования данных немножко не хватает гибкости. Ведь оператор SQL для подчиненной формы можно создать динамически, на основе значений, выбранных пользователем в главной форме. Тогда отпадет необходимость в скрытых полях, содержащих условия отбора, и к тому же вы сможете формировать самые эффективные запросы для каждого конкретного набора условий. Если же в вашей SQL-инструкции используется оператор LIKE с символами подстановки, добавленными к введенным
138
Глава 3 "Разработка приложений клиент/сервер
пользователем значениям, тогда вам просто придется формировать запрос динамически (вместо использования статического запроса с параметрами). Так же будет и в том случае, если у таблицы имеется несколько индексов, но сервер может использовать только по одному индексу для каждой таблицы в запросе. Динамически построив запрос на основе указанных пользователем значений, вы сможете выбрать самый подходящий индекс. Если же вы будете пользоваться статическим запросом с фиксированными критериями отбора, оптимизатор не сможет определить, какой индекс ему применить, и придется просматривать всю таблицу.
Несвязанные элементы управления в заголовке и примечании формы
Для поиска и редактирования данных вовсе не обязательно использовать подчиненную форму. Вы можете упростить нашу модель, разместив несвязанные элементы управления в заголовке или примечании формы, и либо фильтровать записи формы на основе их значений (с помощью метода ApplyFilter), либо динамически изменять источник записей формы (свойство RecordSource). Преимущество этого подхода состоит в том, что у вас будет всего одна и достаточно простая связанная форма. Правда, возможности размещения ее элементов ограничены тем, что поля для задания условий отбора данных могут располагаться только в заголовке или примечании.
Предыдущая << 1 .. 50 51 52 53 54 55 < 56 > 57 58 59 60 61 62 .. 357 >> Следующая