- •Санкт-Петербургский Государственный Политехнический Университет
- •7 Шагов в базу данных
- •Введение
- •Шаг 1.Разработка технического задания
- •Шаг 2.Создание таблиц
- •2.1.Настройка интерфейса
- •2.2.Структура данных
- •2.3.Создание таблиц.
- •Создание таблицы клиенты
- •Ключевое поле
- •2.4.Связывание таблиц
- •Шаг 3.Создание простых форм для ввода данных
- •3.1.Автоформа.
- •Ленточная форма клиенты
- •3.2.Создание собственного стиля формы.
- •Ленточная форма товары
- •Шаг 4.Создание сложных форм для ввода данных. Мастер форм.
- •4.1.Проект формы.
- •4.2.Создание формы с помощью мастера.
- •4.3.Изменение макета формы.
- •Изменение главной формы.
- •Преобразование поля в поле со списком
- •Улучшение внешнего вида формы
- •Изменение подчиненной формы
- •Автоподстановка цены при выборе товара из списка.
- •Изменение источника данных. Вычисляемые поля в запросе и форме.
- •4.4.Последний штрих.
- •Шаг 5.Построение отчетов.
- •5.1.Прайс-лист. Отчет на базе таблицы. Вид отчета.
- •Базовая таблица
- •Строим автоотчет.
- •5.2.Вывод счета. Отчет на базе нескольких таблиц.
- •Построение базового запроса.
- •Построение отчета мастером.
- •Кнопка печати (просмотра) счета на форме.
- •Шаг 6.Выборка информации из базы.
- •6.1.Создание форм для просмотра информации с фильтрацией данных
- •Определим общий вид формы.
- •Разработку формы начинаем с создания запроса.
- •Создаем ленточную форму.
- •Доводка формы.
- •Изменим имя и подпись кнопки.
- •Изменим источник записей для формы.
- •6.2.Создание отчета по фильтру, заданному в форме.
- •Создание отчета в режиме конструктора.
- •Ставим на форму кнопку открытия отчета с помощью мастера.
- •Шаг 7.Создание меню
- •7.1.Разрабатываем макет меню.
- •Изменяем внешний вид панели.
- •Приложение. Виды запросов. Выборка
- •Другие типы запросов
- •Запрос с условиями отбора
- •Вычисления в запросах
- •Пример с запросом на объединение
Кнопка печати (просмотра) счета на форме.
Кнопку ставим при помощи мастера, включенного на панели элементов управления. Просто нажмем на элемент, отпустим мышку и щелкнем мышкой уже на примечании (или в заголовке) формы.
В открывшемся окне мастера выберем РАБОТА С ОТЧЕТОМ и ПРОСМОТР ОТЧЕТА.
В следующем окне выберем отчет СЧЕТА. Затем выберем картинку для кнопки или введем текст. В последнем окне введем имя для кнопки. Это чтобы потом можно было найти процедуру, если понадобится.
Имя не должно содержать пробелов.
Теперь сразу после регистрации покупки можно будет просмотреть и распечатать чек
Шаг 6.Выборка информации из базы.
6.1.Создание форм для просмотра информации с фильтрацией данных
Как быстро создать форму для просмотра результатов запроса к базе данных, рассмотрим на примере.
Необходимо выбрать данные о продажах для определенного клиента за период времени.
Определим общий вид формы.
|
|||||||||||||
|
|
|
|
||||||||||
|
|
|
|
|
|||||||||
Выбрать клиента |
Задать период |
|
|
||||||||||
|
список |
|
от |
01.01.06 |
до |
01.02.06 |
|
Отбор |
|
|
Показать всех |
|
|
|
|
|
|
|
|||||||||
Клиент |
дата |
Номер счета |
сумма |
|
|||||||||
Иванов |
01.01.06 |
1234 |
1000 |
|
|||||||||
Иванов |
12.01.06 |
1267/1 |
1500 |
|
|||||||||
Петров |
|
|
|
|
|||||||||
Сидоров |
|
|
|
|
|||||||||
Сидоров |
|
|
|
|
|||||||||
Федоров |
|
|
|
|
|||||||||
Синицын |
|
|
|
|
|||||||||
|
Итого |
|
итоговая сумма |
|
|||||||||
Сначала, сразу после открытия формы, должны отображаться все продажи клиентов за весь период.
Если выбрать из списка клиента, ввести даты и нажать кнопку отбор – отобразятся продажи выбранного клиента за указанный период.
Если нажать кнопку показать всех, отобразятся продажи всех клиентов за указанный период.
Дополнительные условия (для чуть-чуть продвинутых)
Если не выбран клиент и нажата кнопка ОТБОР – отображаются все клиенты
Если не задана первая дата, отображать все, что продано до второй даты
Если не задана вторая дата – отображать все, что продано после первой даты
Разработку формы начинаем с создания запроса.
Сначала создаем базовый запрос для формы без фильтрации
Данные берем из таблиц: КЛИЕНТЫ, СЧЕТА, ТОВАРЫ ПО СЧЕТУ
Выбираем на панели иконку со знаком суммы (групповые операции).
Записываем выражение для вычисления суммы и сохраняем запрос.
Сохраняем запрос с именем ПродажиКлиентов и закрываем его.
На языке SQL запрос будет иметь вид:
SELECT
Клиенты.Клиент,
Счета.НомерСчета,
Счета.Дата,
Sum([Кол]*[ЦенаПродажи]*(1+[НДС])) AS Сумма
FROM
(Клиенты INNER JOIN
Счета ON Клиенты.кодКлиента = Счета.КодКлиента) INNER JOIN
ТоварыПоСчету ON Счета.КодСчета = ТоварыПоСчету.КодСчета
GROUP BY
Клиенты.Клиент,
Счета.НомерСчета,
Счета.Дата;
