Рис. 77. Окно «Итоги»
Рис. 78. Запрос «Итоги по поставщикам»
Рис. 79. Изменение имени вычисляемого поля в запросе
Двоеточие и следующее за ним название исходного поля «стоимость», по которому ведется суммирование, удалять или изменять нельзя! Теперь осталось создать ленточный отчет, точно так же, как мы это делали в пункте 6.1. В режиме конструктора откорректируем отчет. Изменим заголовок на «Объемы поставок (в рублях)». В примечании отчета поместим вычисляемое поле, отражающее суммарный объем поставок по всем поставщикам (рис. 80). Вычисляемое поле в примечании отчета содержит формулу «=Sum([объем_поставки])». Предназначенный для печати документ представлен на рис. 81.
61
Таким образом, мы создали два отчета. В первом поставки сгруппированы по поставщикам. Во втором отражена обобщенная информация, то есть объемы поставок в рублях по всем поставщикам.
В качестве самостоятельной работы предлагается создать следующие объекты:
Отчет по поставкам, сгруппированным по отдельным товарам.
Итоговый отчет по отдельным товарам с указанием объема поставки, общей стоимости поставки и средней цены товара (в общем случае один и тот же товар за некоторый период времени может поставляться по разным ценам).
Рис. 80. Отчет «приход_итоговый» в режиме конструктора
Может ли созданный таким образом отчет представлять практический интерес? Очевидно, нет. Склад может работать годы, а отчет директор требует за конкретный период времени. Наконец, неплохо бы в заголовок отчета поместить название фирмы, а в примечании отчета фамилию с инициалами лица, представляющего отчет, – заведующего складом. Этим в дальнейшем мы и займемся.
62
Рис. 81. Предназначенный для печати документ
63
7. Шаг седьмой. Доработка отчетов
7.1. Дополнительная информация. Прежде всего создадим в режиме конструктора таблицу, которая будет содержать дополнительную информацию, отраженную в полях:
«фирма» – название фирмы. Текстовая строка, длину которой Вы можете установить сами;
«заведующий» – фамилия, имя, отчество заведующего складом;
«дата1» и «дата2» – эти поля (длинный формат даты) будут хра-
нить начало и конец временного интервала, за который составляется отчет.
Разработчик, если сочтет нужным, может пополнить структуру таблицы и другими полями, но мы, как всегда, постараемся ограничиться необходимым минимумом. При сохранении таблицы подтвердим, что не собираемся задавать ключевое поле. Дадим таблице имя «фирма» и заполним только первую запись. Например, «фирма» – «ООО «Рога и копыта», «заведующий» – «Бендер О. И.». Создадим форму «в столбец», источником данных которой будет служить таблица «фирма» (рис. 82).
Рис. 82. Дополнительная информация
Дадим форме имя «фирма». Поскольку таблица «фирма» всегда будет состоять из одной-единственной записи, внесем в свойства формы изменения, которые мы уже вносили в разделе 3.3. То есть удалим полосы прокрутки, область выделения, поле номера записи, кнопки оконного меню и кнопки размеров окна, запретим удаление и добавление записей. Наконец, сделаем окно модальным, закроем окно свойств, создадим кнопку выхода и покинем режим конструктора. Форма готова!
64
На самом деле нам нужны две формы, отличные от той, которую мы только что создали: одна для просмотра и корректировки названия фирмы и фамилии заведующего складом (по крайней мере, заведующих складом иногда меняют), другая для задания начала и конца отчетного периода.
Создадим копию получившейся формы. Для этого воспользуемся пунктом меню «Правка Копировать», а затем «Правка Вставить». В открывшемся диалоговом окне дадим копии имя «отчет_приход». Затем поочередно откроем обе формы в режиме конструктора и внесем в них небольшие корректировки. В форме «фирма» удалим поля «дата1» и «дата2» (рис. 83).
Рис. 83. Форма «фирма»
Рис. 84. Форма «отчет_приход»
В форме «отчет_приход» установим подпись: «Отчет о поставках», удалим поля «фирма» и «заведующий», а также изменим расположение полей и содержание надписей к ним (рис. 84). Еще раз обратим Ваше внимание на то, что подпись в верхней части формы и имя формы – разные
65