Так как форма должна опираться на несколько запросов и предоставлять пользователю информативные списки то простыми текстовыми полями мы не обойдемся
1) Новый элемент «Поле со списком» – В данном элементе мы можем задать источник данных такой как таблица или запрос и на основе содержимого источника данных мы будем получать набор записей.
Причем, например, задав 2 параметра из них
1) ID клиента
2) ФИО
«Поле со списком» будет отображать 2 столбец (ФИО) качестве текста, а значения из 1 столбца (ID) будет возвращаться в переменную при выборе значения
Пример:
1) При добавлении его на форму запускается мастер с помощью которого можно выбрать данные которыми будет заполняться «Поле со списком»
Можно сразу нажать отмену и перейти к настройкам в ручную, а можно нажать далее чтобы мастер помог настроить источник данных данного поля
Выбираем интересующую нас таблицу или запрос
Добавляем поля на основе которых будем дальше работать с данными
Далее можно выбрать вид сортировки записей по определенному столбцу например FIO будут сортироваться по возрастанию
|
|
Но можно просто пропустить шаг
Далее Мастер покажет результат набора данных который будет отображаться в виде списка
Нажав кнопку готово мы получаем рабочий компонент формы способный взять данные из таблицы и предоставить пользователю возможность выбрать одно из значений.
Присвоив переменной наше поле со списком мы получим ID_клиента помещенный в эту переменную
Если взглянуть на свойства компонента то можно увидать что данные тянуться из таблицы по средствам запроса указанного в поле Источник данных ни кто не запрещает взять и модифицировать запрос по необходимости.
Таким же способом мы можем добавить список товаров, из которого будем добавлять в корзину купленные клиентом товары.
Чтобы отображать список выбранных товаров покупателем будем использовать еще один тип называемый список в него будем помещать товары, которые выбрал клиент для покупки
Для того чтобы избежать ввода неверного значения количества товара пользователем можно добавить еще один выпадающий список и предоставить в нем только те значения которые могут быть предоставлены для данного товара.
Для реализации расчета списка количества товара используем процедуру ввода изменения в название товара т.е. на «Поле со списком» название товара нажимаем правую кнопку мыши и создаем процедуру обработки выбора товара
1) По ID товара получаем его количество
Добавляем поле в котором будем предоставлять выбор количества товара на складе
Добавляем процедуру обработки выбора товара для расчета возможного количества товара
|
|
Первым делом проверяем выбрал ли пользователь товар
Далее объявим 3 переменные
Следующим шагом обнуляем список значений количества возможного товара
Следующим шагом формируем запрос, который должен узнать по ID товара количество его на складе
Далее выполняем запрос, сохраняя результат в переменную rs
Чтобы получить значение результата необходимо написать код rs.Fields("Kolichestvo")
Который вернет значение параметра, которое храниться в результатом столбце Kolichestvo
Запускаем цикл и заполняем Поле со списком его значениями цифр от 1 до максимального количества товара.
Можно считать процедуру законченной
Теперь пользователь сможет выбрать товар и максимальное количество которое нужно будет добавить в заказ
Далее добавляем кнопку, которая будет добавлять выбранный товар в корзину
Чтобы предоставить корзину на форме можно использовать компонент под названием «Список» Его свойства практически ни чем не отличаются от свойств поля со списком с единственным отличием, что все содержимое списка будет выводиться сразу в его окно.
Реализуем функционал кнопки добавления товара в корзину собственно добавляем товар через запрос использующий параметр IN в качестве ограничения выводимых товаров
Объявляем глобальную переменную, чтобы данные из нее не стирались после срабатывания функции для этого просто объявляем выше объявления функции.
Далее в параметр ID_TOVAR_LIST добавляем ID товаров которые выбрал клиент и на основе этих товаров выполняем запрос