Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Улучшение работы компании средствами Visual Basic

Поиск

На протяжении последних 16 глав вы узнали и полюбили БД компании Boutique Fudge, которая представляет собой БД действительных продаж, отслеживающую данные о клиен­тах, товарах и заказах. Однако, несмотря на то, что в БД Boutique Fudge хранится вся необ­ходимая информация, она все еще не полностью интегрирована в повседневную деятель­ность компании. И прежде чем вы попытаетесь это исправить, следует понять, почему выигрыш столь мал.

Большинство людей, работающих в компаниях, подобных Boutique Fudge, не думают о таблицах и операциях над данными (таких как добавление, обновление и удаление записей). Они мыслят задачами, например, размещение заказа, доставка заказа и обработка жалобы клиента.

Многие задачи тесно связаны с операциями над данными и в этом случае у вас нет проблем. Задача "регистрация нового клиента" включает открытие таблицы Customers и последующее добавление новой записи. Следить за ней можно с помощью простой формы. Задача "размещение заказа" немного сложнее. Она включает добавление записей в несколько таблиц (таблицы Orders и OrderDetails) и использование данных из связанных таблиц (таблицы Products и Customers) для заполнения заказа. Можно создать обычную форму для выполне­ния этой работы, но она не будет действовать так, как хотели бы продавцы (рис. 17.10).

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

Сейчас очень пригодится VB. С помощью подходящего программного кода вы сможете спроектировать интеллектуальную форму, которая будет соответствовать методам работы сотрудников компании. Интеллектуальная форма — это не просто способ добавления, редак­тирования и удаления записей в таблице — это средство, помогающее вести коммерческую деятельность. В следующих разделах вы увидите, как разрабатывать улучшенные формы с некоторыми программируемыми свойствами. К этим формам относятся следующие:

PlaceOrder позволяет создать новый заказ. Она действует в месте с подчиненной формой PlaceOrder_Subform, позволяющей включать отдельные товары в заказ;

AddProduct позволяет создать новый товар. Вы можете использовать ее непосредственно из формы PlaceOrder для вставки товара внутрь заказа;


 
 

ShipOrders позволяет обновить заказ сведениями о доставке. Она также работает с фор­мой ReviewOrderDetails для вывода на экран компонентов заказа.

 

Рис. 17.10. Эта форма позволяет добавлять записи в таблицы Orders и OrderDetails. Но ей не хватает нескольких украшений, которые пользователи рассчитывают увидеть на форме для заказа — например, автоматическое заполнение поля с ценой каждого товара, заказанного вами, вычисление промежуточных итогов по мере заполнения заказа и возможность добавить товар на лету

 

 

Проверить конечный результат можно с помощью загружаемых из Интернета БД, пред­назначенных для данной главы (см. разд. "Примеры" во введении).

 

Подсказка

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

 

 

Хранение промежуточного итога

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


го элемента (за счет перемножения цены товара и его количества) и еще более важная ито­говая стоимость заказа (рис. 17.11).

 

 
 

Рис. 17.11. Форма PlaceOrder с промежуточными итогами и общим итогом

 

 

Примечание

Форма PlaceOrder также включает несколько уже знакомых вам тонкостей, например, разме­щение адресной информации клиента на отдельной вкладке, перенос автоматически генери­руемых полей (идентификационный номер заказа ID и дата заказа) в нижнюю часть окна, где они не будут никого отвлекать, и установка в их свойстве Блокировка (Locked) значения Да для запрета изменений. В свойстве формы Ввод данных (Data Entry) также установлено зна­чение Да, что позволяет начать создавать новый заказ сразу после открытия формы.

 

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

=Quantity * Price

Это выражение действует, поскольку нужная информация (поля Price и Quantity) располагается на той же форме, что и вычисляемое поле. А вот общий итог получить не так легко.


Для пущей важности можно соединить это выражение с функцией Format, чтобы быть уверенным в том, что выводится нужное число десятичных знаков и символ валюты ($):

=Format (Quantity * Price, "Currency")

Для вычисления общей суммы необходимо использовать данные полей Quantity и Price в таблице OrderDetails. К сожалению, у формы PlaceOrder нет легкого способа получить эту информацию. Дело не только в том, что она находится где-то еще (на подчиненной фор­ме), но и в том, что она включает несколько отдельных записей. Даже если извлечь данные полей Quantity и Price из подчиненной формы, можно будет получить значения только для текущей записи, а не для всего списка заказанных товаров.

Для решения этой проблемы нужна специализированная функция Access, называемая статистической функцией по подмножеству или функцией обработки набора записей (domain function). Функция по подмножеству может обработать целую таблицу и вернуть одну порцию данных. Дополнительную информацию см. в следующем разделе.

 

 

На профессиональном уровне.



Поделиться:


Последнее изменение этой страницы: 2016-08-14; просмотров: 174; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.4.250 (0.008 с.)