Формы
Скачать 2.21 Mb.
|
Выборка документа по его идентификаторуРассмотрим организацию выборки нужного договора по заданному номеру. Предусмотрим возможность ввода номера договора в диалоге с пользователем. Для этого в источнике записей главной формы ДОГОВОРЫ С ПОКУПАТЕЛЯМИ — запросе на выборку из записей двух взаимосвязанных таб- лиц — в поле номера договора НОМ_ДОГ определим параметр запроса [Номер договора] (рис. 5.56). Представленное на рисунке окно построителя запросов от- крывается при щелчке на соответствующем значке в строке свойства формы Ис- точник записей (Record Source). Теперь при открытии формы будет выводиться диалоговое окно (рис. 5.57) для ввода значения параметра запроса (Номер договора). После ввода нужного номера договора в форме будут доступны данные соот- ветствующего договора. Однако для перехода к просмотру другого договора по- требуется заново открыть форму. Рис. 5.56. Источник записей главной формы ДОГОВОРЫ С ПОКУПАТЕЛЯМИ
Для удобства пользователя желательно создание такого интерфейса, который обеспечит возможность выбора документа при постоянно открытой форме. Для этих целей может быть подготовлена форма интерфейса, в которую встраивается форма документа. Форма интерфейса должна включать элемент управления, кото- рый обеспечивает ввод значения параметра запроса. Создадим пустую форму (без источника записей), воспользовавшись командой Конструктор форм (Form Design) в группе Формы (Forms) на вкладке ленты Соз- дание (Create), и присвоим ей имя Выборка договоров. Создадим в форме, откры- той в режиме конструктора, с помощью мастера элемент управления — поле со списком. Выберем в качестве источника формирования значений списка таблицу ДОГОВОР и ее поле — Номер договора. Полю со списком в его свойствах дадим имя, совпадающее с названием параметра запроса — Номер договора. В надписи поля запишем обращение к пользователю "Введите номер договора" (рис. 5.58). Перетащим из окна базы данных форму ДОГОВОРЫ С ПОКУПАТЕЛЯМИ в об- ласть данных формы Выборка договоров. Полученная составная форма в режиме конструктора приведена на рис. 5.58. Удалите надпись встроенной формы ДОГОВОРЫ С ПОКУПАТЕЛЯМИ, в свойствах макета формы Выборка договоров Область выделения (Record Selectors), Кнопки перехода (Navigation Buttons), Полосы прокрутки (Scroll Bars) выберите значение Нет (No). Рис. 5.58. Форма для выборки договора по задаваемому в диалоге номеру в режиме конструктора Рис. 5.59. Интерфейс, обеспечивающий выборку нужного договора в поле со списком В режиме формы при выборе из списка номера нужного договора он отобра- зится во встроенной форме ДОГОВОРЫ С ПОКУПАТЕЛЯМИ (рис. 5.59). Выборка документа по диапазону датДля формы с именем ДОГОВОРЫ С ПКУПАТЕЛЯМИ предусмотрим возмож- ность ввода пользователем диапазона дат заключения договоров и выборки соот- ветствующих договоров. Для этого подготовим интерфейс, обеспечивающий вы- борку документов по диапазону дат, по аналогии с подготовкой интерфейса, рассмотренной в предыдущем примере. В запросе — источнике записей главной формы (см. рис. 5.56) удалим ранее за- данный параметр запроса [Номер договора] и зададим в поле даты заключения до- говора ДАТА_ДОГ два параметра запроса. Параметры определим в выражении Between [ДатаНачальная] And [ДатаКонечная], записанном в условии отбора. Рис. 5.60. Интерфейс, обеспечивающий выборку документов по диапазону дат Как в предыдущем примере, создадим форму без источника записей, в которой разместим два свободных поля, не связанных с каким-либо источником данных. В свойствах одному полю дадим имя параметра ДатаНачальная, второму — ДатаКонечная. Надписи полей изменим на Дата начала периода и Дата оконча- ния периода соответственно. Перетащим из окна базы данных форму ДОГОВОРЫ С ПОКУПАТЕЛЯМИ в область данных формы. Для связи календаря с полями ввода дат диапазона выберите для каждого поля в свойстве Формат поля (Format) на вкладке Макет (Format) нужный формат, на- пример Краткий формат даты (Short Date). В режиме формы при вводе дат начала и конца диапазона во встроенной форме отобразятся выбранные договоры (рис. 5.60). Выборка документов с помощью фильтрацииИспользуйте фильтры для выборки различных сведений из договоров. Устано- вите курсор на поле с номером договора. Щелкните на кнопке Фильтр (Filter). В открывшемся окне откройте список Текстовые фильтры (Text Filters). Для поля доступны эти фильтры, потому что поле имеет текстовый тип данных. В списке щелкните Содержит (Contains), откроется настраиваемый фильтр (рис. 5.61). Вве- дите нужный номер договора и нажмите ОК. В форме отобразится выбранный до- говор. Открыть список Текстовые фильтры (Text Filters) можно также вызвав контекстное меню. Рис. 5.61. Диалоговое окно задания условия отбора для фильтра Чтобы снять фильтр с формы, используйте команду контекстного меню поля Снять фильтр с НОМ_ДОГ (Cliar filter from НОМ_ДОГ). Если необходимо, за- дайте новые условия отбора по полю с номером договора. Чтобы отобрать договоры за заданный период, в контекстном меню поля с да- той заключения договора откройте Фильтры дат (Date Filters). Список фильтров для дат позволяет осуществить выборку по самым разным критериям (рис. 5.62). ВНИМАНИЕ! Итоговые данные по договору подсчитываются только для выбранных в результате фильтрации данных. Для отбора в договорах сведений только о заданном товаре используйте тек- стовый фильтр по полю с наименованием товара. Для отбора заданного товара, заказанного в заданном месяце, не снимая фильтра с наименования товара, вы- полните фильтрацию по полю СРОК_ПОСТ (срок поставки). Числовой фильтр по полю СРОК_ПОСТ позволит отобрать данные в любом заданном интервале. При использовании фильтров легко проверить запланированные поставки заданного товара в договорах и, если необходимо, откорректировать или дополнить их но- выми строками. Рис. 5.62. Фильтры для выборки записей по полю с типом данных Дата/время Таким образом, использование фильтра позволит просматривать данные в раз- личном представлении. Создайте многотабличную форму для ввода и корректировки в базе данных на- кладных на отгрузку товаров. Подсхема для такой формы приведена на рис. 5.63. В результате загрузки в базу данных по накладным должны создаваться только записи таблиц НАКЛАДНАЯ и ОТГРУЗКА. Рис. 5.63. Подсхема для составной формы по работе с накладными Осуществите проектирование интерфейса для загрузки данных документа НАКЛАДНАЯ: определите общую структуру составной формы в соответствии с подсхе- мой данных для формы, приведенной на рис. 5.63; разместите реквизиты в проекте формы так, чтобы обеспечить удобный ввод данных с документа, а также отображение справочной информации по договору, покупателю и товару. Выполните конструирование экранной формы, через которую будет осуществлять- ся ввод, добавление и изменение записей таблиц НАКЛАДНАЯ и ОТГРУЗКА. Загрузите данные с документа "Накладная" через построенную форму. Контрольные вопросыМожет ли форма, созданная мастером, содержать данные из нескольких таблиц? Как в форме установить защиту от изменения данных поля? В каком разделе свойств формы определяются основные параметры ее вида? Значения какой таблицы содержит поле со списком Код покупателя на рис. 5.47? В запись какой таблицы вводится значение, выбранное в поле со списком Код покупателя на рис. 5.47? Может ли поле со списком включать значения нескольких полей одной записи? Можно ли с помощью одного поля со списком сразу выбрать несколько значе- ний и ввести их в несколько полей? В каком случае при создании поля со списком не подключается мастер? Откуда может получать значения поле со списком? Можно ли для поля со списком пользоваться командами поиска и сортировки? Где можно просмотреть информацию об источнике данных для поля со спи- ском? Где хранится имя поля, в которое должно вводиться значение, выбранное в списке? Какое свойство приводит к открытию формы в режиме добавления записей, при котором невозможен просмотр ранее введенных записей? Какой внешний вид подчиненной формы нужно выбрать, чтобы в ней выводи- лись надписи полей, определенные в свойствах таблиц? Позволяет ли мастер выбрать нужный стиль оформления формы? Какой элемент управления позволяет создать вычисляемое поле в форме? С какого знака начинается выражение, записываемое в вычисляемое поле? Как вызвать построитель для формирования выражения в вычисляемом поле? В каком разделе формы размещается вычисляемое поле для расчета итогового значения для подчиненной формы? Можно ли при расчете итогового значения использовать в аргументе функции Sum имя другого вычисляемого элемента управления? Как отобразить итоговое значение, рассчитанное в подчиненной форме, в глав- ной форме? Какой формат имеет ссылка на вычисляемое поле в подчиненной форме? Сохраняется ли значение вычисляемого поля в таблице? Что нужно сделать, если не работает связь основной и подчиненной форм? Должны ли поля, по которым устанавливается связь между основной и подчи- ненной формами, иметь одинаковые имена? Может ли связь между основной и подчиненной формами устанавливаться по нескольким полям? Можно ли путем перетаскивания таблицы из окна базы данных в форму создать в ней подчиненную форму? Может ли мастер построить форму на основе несвязанных таблиц? Какие записи подчиненной таблицы отображаются в подчиненной форме? Что указывает мастер в качестве источника записей в форме, содержащей поля нескольких взаимосвязанных таблиц? Как просмотреть запрос — источник записей многотабличной формы в режиме конструктора? Можно ли, изменив инструкцию SQL или запрос в режиме конструктора, по- влиять на состав доступных в форме полей? Может ли мастер построить форму на основе ранее созданного запроса? Можно ли при создании новой записи в форме СПРАВОЧНИК ТОВАРОВ не вводить значение кода товара? Какие значения содержит поле со списком Код товара, определенное в форме НАКЛАДНАЯ? В запись какой таблицы вводится значение, выбранное в поле со списком Код товара в форме НАКЛАДНАЯ? В каком случае к созданию кнопки не подключается мастер? Можно ли изменить вид кнопки после завершения работы мастера? Какие таблицы можно дополнить данными при работе в форме ДОГОВОРЫ С ПОКУПАТЕЛЯМИ? Какие поля входят в список доступных в форме полей? В каком элементе управления размещается подчиненная форма? В каких свойствах указываются поля связи основной и подчиненной формы? Какая команда позволяет создавать форму на основе выбранной таблицы? Какая вкладка ленты активируется при открытии формы? Откуда выбирается текст при автоматическом формировании надписи поля в форме? Какие вкладки ленты используются при конструировании формы? Сохраняет ли в форме поле такие свойства, как Поле со списком (List Box), Список (Combo Box), заданные при его определении в таблице? Для чего предназначена группа Элементы управления (Controls) конструкто- ра форм? Как в режиме конструктора просмотреть доступные в форме поля? Где хранится ссылка на источник записей формы? Где размещена кнопка, по которой создается элемент управления Надпись (Label)? По какой команде просматриваются свойства элемента управления? Какая кнопка позволяет переключаться из режима конструктора в режим фор- мы и обратно? Можно ли в форме с помощью кнопок перехода по записям сделать текущей новую запись? В какой последовательности загружаются таблицы базы данных? Какой объект нужно использовать для первоначальной загрузки и корректи- ровки взаимосвязанных таблиц базы данных? В каких отношениях, как правило, находятся таблицы — источники основной и подчиненной формы? Какие поля записеобразующей таблицы должны быть обязательно включены в подчиненную форму, чтобы через нее можно было вводить новые записи? Можно ли через многотабличную форму осуществить ввод данных сразу в не- сколько таблиц? Каким требованиям должен отвечать интерфейс пользователя для работы с до- кументами, сохраняемыми в базе данных? Назовите основные этапы проектирования формы для работы с документами, сохраняемыми в базе? Какими средствами целесообразно создавать интерфейс для подготовки и ввода данных документа? Можно ли через форму Накладная ввести запись об отгрузке товара, отсутст- вующего в таблице ТОВАР? |