Създайте подотчети

Подотчетите могат да се създават по два начина:

  • използване на съветника за подформуляр/отчет за създаване на нов подотчет в рамките на съществуващ отчет;
  • чрез вграждане на вече съществуващ отчет (или формуляр) в друг отчет (в този случай вграденият отчет става подотчет).

За да демонстрираме как се създават съставни отчети, ще съставим отчет, показващ тримесечните обороти на клиенти. Първо трябва да създадете заявка, която ще бъде основа за основния отчет. Тази заявка ще има параметър [Отчетна година:] и ще избере всички клиенти, които имат поръчки през посочената година (фиг. 10.5).

Тази заявка е много лесна за създаване въз основа на подобна заявка „Тримесечни поръчки“ (Тримесечни поръчки) в базата данни на Northwind:

  1. Изберете наименуваната заявка в прозореца на базата данни и я копирайте с помощта на командите за копиране и поставянеРедактиране, Копиране(Редактиране, Копиране) иРедактиране, Вмъкване​​(Редактиране, Поставяне). Наречете го „Тримесечен клиентски оборот“.
  2. Отворете го в изглед за проектиране.
  3. Изтрийте последното поле "OrderDate" от таблицата с полета в долната част на прозореца на заявката и вместо това вмъкнете изчислено поле: OrderYear: Year ("[PlaceDate]) (за английската версия използвайте английското име на полето OrderDate, можете да зададете името на изчисленото поле на OrderYear) и в редаУсловие за избор(Критерии) въведете името на параметъра на заявката [Отчетна година: ]. Запазете и затворете заявката .

създайте

Фиг. 10.5.Основна заявка за справка "Тримесечен клиентски оборот".

Сега нека създадем отчет въз основа на заявката, която току-що създадохме. За да направите това, можете да използвате съветника за отчет(вижте Глава 6).

Изберете запоставете полетата „Име“ (CompanyName), „Град“ (Град) и „Държава“ (Държава) в отчета, сортирайте записите по полето „Име“, изберете типа отчетв колоната(Колона) и един от предложените стилове на отчет. В резултат на това ще получите отчет, подобен на показания на фиг. 10.6.

За да изградим подотчет, съдържащ тримесечния оборот на клиентите, ще използваме готовата заявка „Тримесечни поръчки по продукт“, като леко я променим. А именно, трябва да премахнете последното поле „Дата на поставяне“ (OrderDate) от заявката, за което условието за избор е ненужно в нашия пример. След това заявката ще изглежда като тази, показана на фиг. 10.7. Запазете го с името „Клиентски тримесечни продажби по артикул“.

подотчети

Фиг. 10.6.Съставен доклад основен доклад

подотчети

Фиг. 10.7.Основна заявка за подотчет

За да създадем подотчет, ще използваме съветника за подотчет. За това:

  1. Отворете тримесечния отчет за клиентския оборот в изглед за проектиране.
  2. Изберете контролатаПодформуляр/Отчет​​(Подформуляр/Подотчет) в контролатаКутия с инструменти(Кутия с инструменти) и я поставете в секциятаОбласт за данни(Подробности) под полетата, съдържащи клиентски данни. (Трябва да се натисне бутонMasters(Control Wizards).)
  3. В първия диалогов прозорец на съветника изберете радио бутонаСъществуващи таблици и заявки(Използване на съществуващи таблици и заявки) (фиг. 10.8). Щракнете върху бутона Напред.

полета

Фиг. 10.8.Първият диалогов прозорец на съветника за подотчети

  1. Във втория диалогов прозорец на съветника трябва да определите кои полета искате да включите в подотчета (фиг. 10.9). В този случай полетата като цялослучай, можете да избирате от няколко таблици и заявки. В този случай в падащия списъкТаблици и заявки(Таблици/Заявка) изберете заявката „Тримесечен клиентски оборот по продукт“ (която е създадена за този пример), след което щракнете върху бутона с две стрелки, за да включите всички полета на заявката в подотчета, и щракнете върху бутонаНапред(Напред).

създайте

Фиг. 10.9.Вторият диалогов прозорец на съветника за подотчети

  1. В следващия диалогов прозорец трябва да дефинирате връзка между главния и подотчетите, ако има такава, или да изберетеНяма(Няма) от списъка, ако създавате независим подотчет. В този случай можете да изберете връзка от показания списък, но предложените опции не ни подхождат, така че изберете бутона за изборДефиниране на моята собствена>, за да дефинирате сами тази връзка.

Забележка

Тъй като полетата в свързаните източници на данни имат едни и същи типове и имена, съветникът за подотчети може автоматично да свързва отчети по тези полета. Именно тези връзки ще бъдат предложени в списъка с възможни опции за свързване на отчети.

  1. Диалоговият прозорец ще покаже две двойки падащи списъци (Фигура 10.10). Списъците отляво показват полетата в основния отчет, а списъците отдясно показват полетата в подотчета, които са свързани с тях. Една връзка може да бъде дефинирана от едно или повече полета. В този случай трябва да настроите връзка по две полета, за да свържете източниците на данни на главния и подотчетите едновременно както по клиентския код, така и по отчетната година. За да направите това, изберете следните елементи от падащите списъци вляво: „Идентификационен номер на клиента“ (CustomerlD) и „Година на поръчката“ (OrderYear), както и съответните (със същите имена) елементи впадащи списъци отсреща (вдясно), както е показано на фиг. 10.10.

подотчети

Фиг. 10.10.Третият диалогов прозорец на съветника за подотчети

Забележка

Фактът, че връзката между главния и подотчетите чрез полетата „CustomerID“ и „YearOrder“ означава, че всеки запис в основния отчет ще бъде свързан с набор от записи от подотчета, които имат съответните стойности в свързаните полета. И тъй като стойността на годината на поръчката в основния отчет се определя от стойността на параметъра на заявката [Отчетна година:], само онези записи ще бъдат избрани в свързания подотчет, в които стойността на полето „Година на поръчката“ съвпада със стойността на същото поле в основния отчет и следователно със стойността на параметъра [Отчетна година:], зададен от потребителя.

  1. След като определите връзката между отчетите, щракнете върху бутонаНапред(Напред).
  2. Последният диалогов прозорец изисква да посочите име за подотчета. Можете да оставите името, предложено от съветника „Подотчитане на тримесечни продажби на клиенти по продукти“ и да щракнете върху бутонаКрай(Край).

В резултат на това полетоПодотчет​​(Подотчет) ще бъде създадено в основния отчет. Трябва само да регулирате височината и ширината на това поле, да премахнете етикета му и ще получите отчет, подобен на показания на Фигура 1. 10.11.

полета

Фиг. 10.11.Справка "Тримесечен оборот на клиенти"

Формуляр може да се използва и като подотчет. Например отчет, подобен на току-що описания, може да бъде получен чрез подформуляра за тримесечни поръчки, който вече е в базата данни на Northwind.

  1. Копирайте този формуляр и му дайте ново име „Подчинен за тримесечни обороти 2“.
  2. Отворете полученото копие в изглед за проектиране и заменете източника на данни със заявката „Тримесечен клиентски оборот по продукт“, създадена за предишния пример. Запазете и затворете формата.

Забележка

Източникът на данни за формуляра е наличен в режим на проектиране в прозореца със свойства на формуляра като свойството Източник на запис в раздела Данни.

  1. След това копирайте отчета „Тримесечни обороти на клиенти“, който сте създали по-рано, като му дадете ново име „Тримесечни обороти на клиенти 2“ и го отворете в изглед за проектиране.
  2. Изтрийте подотчета и вместо това просто плъзнете и пуснете генерирания формуляр от прозореца на базата данни в областта с данни на отчета с мишката. Автоматично ще бъде създаден елементПодформуляр/Отчет(Подформуляр/Подотчет) с име „Подформуляр за тримесечни продажби“.
  3. Сега регулирайте височината и ширината на създадения елемент и в свойствата на подформуляра в разделаДанни(Данни) дефинирайте обвързващите полета. За да направите това, щракнете върху бутона Builder отдясно на свойствотоПодчинени полета(Link Child Fields) и задайте две двойки свързани полета с едно и също име в диалоговия прозорец, който се появява: „CustomerID“ (CustomerlD) и „OrderDate“ (OrderDate), по същия начин, както е описано в предишния пример. Посочените полета ще бъдат записани като стойностите на свойстватаПодчинени полета(Свързване на дъщерни полета) иОсновни полета(Свързване на основни полета).

В резултат на това ще получите отчет, подобен на показания на фиг. 10.12.

За да е пълна картината, нека добавим две изчислени полета към основния отчет, които ще показват колко е купил клиентът стоките за годината. И двете полета са текстови полета, всяко от които има свое свойствоData(Control Source), зададено на израз. Първите полеви форминадпис с номера на отчетната година. Следният израз се използва за изчисляване на стойността на това поле:

="Общо за " & [Отчети]![Тримесечен оборот на клиенти 2]![Подчин за тримесечен оборот].[Отчет]![Година на поръчка]

(за английската версия използвайте името на полето OrderYear). Второто поле съдържа сумата от всички клиентски поръчки за годината и се изчислява с помощта на следния израз:

=[Подчинен за тримесечен оборот].Формуляр![Общо]

(за английската версия използвайте името на полето Total), т.е. показва полето "Total" (Общо) от подформуляра "Подчинени за тримесечни обороти". Форматирайте генерираното поле, за да покажете сумата пари в него по същия начин, както сумата пари се показва в подформуляра, като копирате стойностите на свойстватаФормат на полето(Формат) иДесетични знаци(Десетични знаци).

подотчети

Фиг. 10.12.Съставен отчет, включително подформуляр