Які категорії запитів можна створити. Формування запитів

Компанія Microsoft надає користувачам широкі можливості для створення та роботи з базами даних. В наш час бази даних дуже широко використовуються у різних сферах та областях. Загалом можна сказати, що зараз без них не обійтися. У зв'язку з цим дуже важливо вміти працювати з таблицями Access. Основним елементом взаємодії користувача з базою даних є запит. У цій статті докладно розглянемо, як створити запит у програмі Access. Давайте почнемо. Поїхали!

Насамперед, розберемося з тим, що таке запит. Це елемент бази даних, який служить вибору потрібної інформації з таблиці. Вони бувають двох видів:

  • на вибірку (дозволяють отримувати дані та виконувати операції над ними);
  • На зміну (дозволяють додавати, видаляти та змінювати значення).

Тепер перейдемо безпосередньо до практики. Зайдіть на вкладку «Створення» та натисніть кнопку «Конструктор запитів». У вікні виберіть одну або кілька таблиць, з яких потрібно вибрати дані. Натиснувши кнопку «Виконати», ви отримаєте всю інформацію з вибраних таблиць. Для більш конкретного відбору перейдіть на вкладку «Конструктор» та введіть потрібне слово або число у полі «Умова відбору:». Наприклад, ви хочете отримати список усіх співробітників 1980 року народження. Для цього пропишіть у рядку «Умова відбору:» 1980 року в колонці «Дата народження» та натисніть кнопку «Виконати». Програма моментально дасть вам результат. Для зручності ви можете зберегти створений запит, щоб скористатися ним надалі. Скористайтеся комбінацією клавіш Ctrl+S та введіть назву у відповідному полі, а потім натисніть «OK».

Вказавши умову для відбору даних, ми отримуємо потрібну вибірку

Щоб порахувати значення в стовпці, можна використовувати так звані групові операції. Для цього на вкладці «Конструктор» клацніть по кнопці «Підсумки». У рядку «Угруповання» виберіть функцію «Count», що дозволяє скласти всі ненульові значення. Щоб у назві стовпчика не виводилося слово «Count», у рядку «Поле» введіть назву перед тим, що було вказано раніше. Збереження виконується так само за допомогою комбінації Ctrl+S.

Аксес вважає непусті осередки

Тепер створимо параметричний запит. Він дозволяє робити вибірку за введеним параметром. Наприклад, за заданою датою. Відкривши потрібну базу даних, пропишіть (без лапок) у відповідному стовпці «[Вкажіть дату]». Квадратні дужки є обов'язковими. У вікні, введіть потрібну дату. Після цього програма автоматично здійснить вибірку за введеною вами датою. Ви можете поставити знаки «>» (більше) та «<» (меньше) чтобы отобразить элементы раньше либо позже заданной даты. Например, список сотрудников, которые сдали отчёты до 01.07.

Як створити перехресне поводження? Достатньо знайти на панелі інструментів кнопку «Перехресний» та клацнути по ній. Після цього в пункті «Перехресна таблиця» виберіть у першому осередку «Заголовки рядків», у другому «Заголовки стовпців», а в третій «Значення». Потім ви можете порахувати значення, використовуючи вже згадану функцію «Count». Зверніть увагу, що якщо ви вкажете у другому осередку «Заголовки рядків», так само, як у першому, замість «Заголовки стовпців», то нічого не працюватиме. Обов'язково враховуйте це.

Робимо перехресний запит у базі

Також ви можете зробити звернення створення таблиці. Як це робиться? Достатньо відкрити бази даних, з якими ви працюєте, потім заповнити комірку «Умова відбору» та клацнути на кнопку «Створення таблиці». Не забувайте натискати "Виконати". На основі заданих параметрів Microsoft Access побудує нову таблицю. Наприклад, список усіх співробітників із їх контактними даними за професією «Бухгалтер».

При збереженні потрібно вказати ім'я та місце розташування нової таблиці

Як можна переконатися, програма Access від компанії Microsoft дозволяє виконувати безліч операцій. Знаючи, як зробити запит у Access, ви почуватиметеся значно впевненіше під час роботи з базами даних. Пишіть у коментарях, чи була корисна для вас ця стаття і ставте питання по розглянутій темі.

Щодня нам доводиться вирішувати багато проблем. Для їх успішного вирішення потрібні відповіді на запитання: починаючи від "яка сьогодні погода" і закінчуючи "курсом польського злотого до російського рубля". Інтернет та пошукові системи дозволяють знаходити відповіді майже на всі питання, але з однією умовою: ставити їх потрібно правильно.

Інструкція

  • Пошукові системи (Google, Yandex, Rambler, Mail, Yahoo та ін.) покликані надавати користувачам потрібну інформацію. Роблять вони це на підставі пошукового запиту. Пошукові запити можуть бути трьох типів:
  • інформаційний. Користувач шукає точну інформацію (неважливо, на якому сайті вона знаходиться). Наприклад: "Гімн Росії".

    Навігаційний. Користувач шукає адресу сайту, на якому може знаходиться інформація, що його цікавить. Наприклад: "Сайт МДУ ім. М.В. Ломоносова".

    Транзакційний. Користувач готовий зробити будь-яку дію і йому потрібна інформація про це. Наприклад: "форматування диска".Отже, перше, що потрібно зробити при формуванні пошукового запиту - визначити, що саме ви шукаєте.

  • Пошукова система - це величезна база даних, вся інформація в якій "розкладена" за поличками - ключовими словами. Після того, як ви задаєте пошуковий запит, відбувається пошук за ключовими словами і видається результат пошуку. Поширена помилка користувачів-початківців у тому, що вони сприймають пошукову систему як співрозмовника, який знає все, і задають пошуковий запит, наприклад, так: "Не підкажете, як прибрати пляму з нової блузки? Вона шовкова. Природно, користь від такого запиту буде мінімальною. Набагато ефективнішим буде такий запит: "біла шовкова блузка прибрати пляму". Отже, друге, що потрібно зробити – правильно сформувати запит. Він має бути максимально простим і містити ключові слова.
  • Після того, як машина обробить ваш запит, вона видасть результати пошуку. Як правило, всі найбільш підходящі результати знаходяться на перших двох-трьох сторінках. Далі йдуть результати пошуку, які лише частково задовольняють запит. Проте, бувають ситуації, коли потрібна дуже рідкісна інформація – тоді доводиться перебирати кілька комбінацій ключових слів у пошуковому запиті та дуже ретельно фільтрувати отримані дані.
  • Також іноді доводиться шукати рідкісну інформацію, яка "міститься" у популярних ключових словах. Наприклад, якщо задати пошуковий запит "Маркс видавець фото", пошукова система знайде безліч фотографій Карла Маркса, видавця Карла Маркса, але для того, щоб знайти фотографію А.Ф. Маркса, книговидавця, доведеться попрацювати. Отже, третє, що потрібно зробити для того, щоб пошук вдався – правильно сортувати інформацію.

    Як правильно сформулювати клієнтський запит на розміщення? Про це часто запитують клієнти. Деякі з них навіть звертаються за попередньою консультацією: "Допоможіть розібратися та сформулювати запит, я заплуталася".

    Давайте розберемося.

    Підходів до правильного запиту на розстановку історично склалося кілька. Це пов'язано з тим, як розвивалися розстановки як метод, поряд з іншими напрямками психотерапії та традиціями духовної практики. Коли розстановки щойно увійшли до практики (наприкінці 70-х — на початку 80-х років минулого століття), на піку популярності були методи т.зв. "короткострокової терапії, орієнтованої рішення". На противагу довгій психотерапевтичній роботі (в т.ч. психоаналізу) терапевти стали розвивати методи швидкої, конкретної допомоги клієнту. Для такої допомоги був потрібний ясний запит. Критерії досягнення цього запиту мають бути чітко зрозумілі як клієнту, і терапевту. "Я хочу отримувати більшу зарплату, але якщо я йду до начальника просити підвищення, я холоднішаю, потію і в мене ноги підгинаються". Завдання: піти до начальника за підвищенням, попросити його та отримати бажане. Над цим завданням працюватимемо, наприклад, 10 сесій. Наприкінці клієнта запитають, на скільки відсотків впевненіше він почувається (як мінімум). Успішна терапія: підвищення одержано.

    Оскільки розстановки, безумовно, короткострокова робота, її почали "за аналогією" відносити до групи методів короткострокової терапії та застосовувати до неї ті ж вимоги до запиту та результативності, які прийняті у цих методах. Цьому сприяв також інтерес до розстановок відомих фахівців із короткострокової терапії (Маттіас Варга фон Кібед та Інзе Шпаррер). І, я думаю, неявно цьому сприяв також ентузіазм Хеллінгера та його схильність говорити про розстановки у таких виразах як "рішення знайдено". У своїх ранніх роботах він нерідко говорив про "усунення симптомів", "вирішення проблеми алкоголізму" і т.п.

    Досі можна зустріти "старих" розстановників, які просять від клієнта конкретну формулювання бажаного результату.Я навіть зустрічала колег (наприклад, Томас Хафер), які записують на лист запит клієнта і в кінці розстановки перевіряють, що саме цей запит виконаний, тобто. стан заступників відповідає бажаному стану клієнта.

    Поряд із цими історичними причинами, є не завжди усвідомлене прагнення клієнта сформулювати щось конкретне, просто тому, що розстановка зараз буде одна, коштує вона дорого, і можливо, її довго чекали і "треба добре використати свій шанс".

    Разом з тим є й інший, майже протилежний підхід до запиту. Він у тому, що запит не потрібен зовсім. На це теж є свої історичні причини, пов'язані передусім зі стилем роботи Берта Хеллінгера.

    У ранніх розстановках Хеллінгер завжди розставляв поточну та/або батьківську сім'ю клієнта. Хеллінгер запитував, у чому проблема клієнта, але хоч би що він відповідав, розстановка завжди зводилася до роботи з членами сім'ї. Виникає справедливе питання: навіщо питати? Пізніше, коли Хеллінгер сформулював, що робота йде із системою в цілому (а не з клієнтом як таким), запит став втрачати своє значення "дізнатися, що хоче клієнт" і набув іншого змісту. Запит потрібен для того, щоб у діалозі з розстановником встановити контакт. Ті, хто знайомий з творчістю Хеллінгера, напевно можуть навести багато прикладів того, як Хеллінгер відмовлявся робити розстановку, тільки-но вислухавши дві-три фрази клієнта. "Ти мене не шануєш, я не можу працювати з тобою".

    Нерідко Хеллінгер працював, взагалі не обмінявшись жодним словом щодо запиту клієнта.

    Як же розібратися в цьому різноманітті звичайному клієнту? Головне, що я хотіла б донести до [своїх] клієнтів, що будь-яка плутанина (як і будь-яка ясність) щодо запиту це абсолютно нормально. Ваш внутрішній процес виявляється так, як це звично і природно для вас. А з боку методу немає обмежень на способи вираження запиту. Якщо ви можете "тільки" сісти поруч із розстановником і розплакатися - цього цілком достатньо. Якщо ви тиждень думали над чітким формулюванням і виклали його мені — це теж нормально. Навіть якщо у цьому формулюванні п'ятнадцять пунктів і все заплутано. Навіть якщо це формулювання розвалилося рівно в той момент, коли ви опинилися на стільці поряд зі мною.

    Я слідом за Хеллінгером вважаю, що головне для початку роботи — це повага та контакт між клієнтом та розстановником. Спосіб, яким це буде досягнуто, не є важливим. Технічно я можу працювати як за чітким формулюванням, так і без запиту взагалі. Зазвичай на тривалій групі у мене багато й тих та інших робіт.

    Як у кожного розстановника, у мене є свої переваги, стани, в яких я почуваюся більш комфортно. У роботі із запитом я скоріше схильна до формулювань невисокої чіткості, які клієнт готовий досліджувати в розстановці та змінювати, якщо це буде необхідно, прямо в процесі. Наприклад, для мене формулювання "хочу вийти заміж за нормального мужика"складніше у роботі, ніж "я дуже самотня і хотіла б зрозуміти, як мені знайти здатність вступати в гармонійні відносини, або що цьому заважає". Перше формулювання неявно ставить мене в роль "того, хто принесе результат", а друге розвертає клієнтку до того, де їй боляче… При цьому, я ставлюся з повагою до того, що ступінь контакту з болем може бути таким, що він видимий тільки через відсутність бажаного результату, і більше поки що ніяк.

    За моїми спостереженнями та досвідом, поле найкраще відгукується на запити, які звертаються до дослідження та трансформації болю. Я відчуваю, що такий базовий рух, який існує в полі — підійти до больового, стисненого, відкинутого стану, доторкнутися до нього і тим самим зробити його видимим, прийнятим, прохідним. У широкому значенні слова і є реалізація Першого Порядку (закону, сформульованого Хеллингером) систем: ніхто не виключений. Якщо ширше, то ніщо не виключено. Якщо біль виключено, він діє. Якщо біль пройдено, він втрачає вплив та силу.

    Виходячи з такого розуміння, зовсім неважливо, яким чином ми з клієнтом знайшли "те, де болить". Чи це було формулювання і чи було воно чітким. Чи змінилося це формулювання п'ять разів за групу чи залишається твердим. Або ми просто сиділи мовчки. Або клієнтка плакала, а я сиділа поряд. Я завжди шукаю невербальний контакт (точніше, він є завжди, навіть якщо ми не усвідомлюємо цього), я налаштовуюся на клієнта і через своє тіло можу відчувати, що з ним відбувається. Іноді ця чутливість дуже чітка, іноді вона дає збої, але в будь-якому випадку вона є і приносить ту чи іншу ступінь контакту, крім або на додаток до будь-яких формулювань. Додатковий контакт і ясність принесуть потім заступники, коли ми почнемо розміщення.

    Ви можете допомогти гарному контакту, відповідаючи собі на запитання "де боляче"або "що не так". Відповідь може бути: "тут"(у серці) або "Мама"(відносини з мамою завдають страждання) або "чоловік не хоче дитини, а я хочу"або "мій співробітник мене підсиджує"або будь-яке інше ясне чи неясне формулювання. Зверніть увагу, що навіть за повної відсутності вербального формулювання ви "чомусь" знаєте, що щось не так, інакше б ви не прийшли на групу. Це знання зазвичай має своє місце у вашому тілі, ви можете просто показати на це місце - і це буде дуже хороше, дуже чітке "формулювання запиту"!

    Таким чином, для мене відповідь на запитання "що таке гарний розставний запит" звучить так: це може бути будь-яке формулювання або відсутність формулюванняякщо в результаті нашої взаємодії ми з клієнтом обидва відчуємо контакт і довіру один до одного, щоб почати роботу.

    Лабораторна робота 2. Формування запитів та звітів

    Формування простих запитів

    1. Створіть простий запит на вибірку

    На основі таблиці «Викладачі» створіть простий запит на вибірку, в якому мають відображатися прізвища, імена, по-батькові викладачів та їх посада.

    Для створення простого запиту:

    · Виберіть пункт меню «Створення» - «Майстер запитів». У вікні «Новий запит» виберіть «Простий запит» і клацніть по кнопці ОК;

    · у вікні в рядку Таблиці/Запити виберіть таблицю «Викладачі»;

    · переведіть поля Прізвище, Ім'я, По-батькові, Посада з вікна «Доступні поля» у вікно «Вибрані поля» та клацніть на кнопку «Далі»;

    · у рядку параметра «Задайте ім'я запиту» введіть нове ім'я «Посади викладачів» та натисніть кнопку Готово. На екрані з'явиться таблиця із результатами запиту.

    2. Дані запиту відсортуйте за посадами та збережіть запит.

    Для сортування даних клацніть у будь-якому рядку поля Посада, відсортуйте дані зі спадання (команда Записи à Сортування à Сортування за спаданням), збережіть запит і закрийте вікно запиту.

    3. Створити запит на вибірку параметра.

    Для створення запиту на вибірку з параметром:

      створіть запит на вибірку аналогічно п. 1 для таких полів таблиці Викладачі: Прізвище, Ім'я, По-батькові.

    Поле «Назва дисципліни» візьміть із таблиці «Дисципліни»;

      задайте ім'я запиту «Викладаються дисципліни» і натисніть кнопку Готово. На екрані з'явиться таблиця із результатами запиту; перейдіть у режим конструктора (команда Вид à Конструктор), у рядку параметра «Умови відбору» для поля Прізвище введіть фразу (дужки теж вводити) [Введіть прізвище викладача];

    Формування складних запитів

    1. Розробте запит із параметрами про студентів заданої групи, в якому при введенні у вікно параметрів номера групи на екран повинен виводитися склад цієї групи.

      у вікні в рядку Таблиці/Запити виберіть зі списку таблицю Студенти; перенесіть усі поля з вікна Доступні поля у вікно Вибрані поля та натисніть кнопку Далі;

      виберіть «Докладний» і ще раз натисніть кнопку Далі; у вікні, введіть ім'я запиту Група, виберіть «Змінити макет запиту» і клацніть по Готово. Відкриється запит у режимі конструктора.

      у рядку "Умови відбору" для поля Номер групи введіть фразу (дужки теж вводити) [Введіть номер групи];

      виконайте запит (команда Запит à Виконати), у вікні, введіть 2В і клацніть по кнопці ОК. На екрані з'явиться таблиця з даними про студентів групи 2В; Збережіть запит і закрийте таблицю запиту.

    2. Створіть запит, у якому виводяться оцінки студентів заданої групи із заданої дисципліни.

    Для створення запиту, в якому виводяться оцінки студентів заданої групи із заданої дисципліни:

      Аналогічно попереднім запитам створіть простий запит за допомогою Майстра; виберіть таблицю Студенти та перенесіть поля Прізвище, Ім'я, По-батькові, Номер групи у вікно Виділені поля; З таблиці «Дисципліни» виберіть поле «Назва дисципліни»; У таблиці Оцінки виберіть поле Оцінки. Ви сформували шість полів запиту, пов'язані між собою за допомогою схеми даних; клацніть по кнопці Далі, а потім у вікні знову клацніть по кнопці Далі; у вікні, введіть ім'я запиту «Оцінки групи», потім клацніть по комірці «Змінити макет запиту» і клацніть по кнопці Готово. Відкриється запит у режимі конструктора. у рядку Умови відбору для поля Номер групи введіть фразу [Введіть номер групи], а для поля Назва дисципліни - [Введіть назву дисципліни];

      виконайте запит; у першому вікні введіть 2В, потім клацніть по кнопці ОК, у другому - введіть «Інформатика» і клацніть по кнопці ОК. На екрані з'явиться таблиця зі списком групи 2В та оцінками з інформатики; Збережіть запит і закрийте таблицю запиту.

    3. Створіть перехресний запит, у результаті якого створиться вибірка, яка відображатиме середній бал з дисциплін у групах.

    Для створення перехресного запиту про середній бал у групах з дисциплін спочатку сформуйте «Простий запит» за допомогою «Майстра» і клацніть по кнопці ОК;

      виберіть із таблиці Студенти поле Номер групи, із таблиці Дисципліни - поле Назва дисципліни, з таблиці Оцінки - поле Оцінки; клацніть по кнопці Далі, а потім у вікні знову клацніть по кнопці Далі; у вікні, введіть ім'я запиту «Дисципліни оцінки групи» і клацніть по кнопці Готово; Збережіть запит і закрийте таблицю запиту.

    Тепер можна створювати перехресний запит. Для цього:

      за допомогою "Майстра", виберіть "Перехресний запит" і клацніть по кнопці ОК;

      клацніть на осередку Запити, виберіть Дисципліни оцінки групи і натисніть кнопку Далі;

      виберіть поле Назва дисципліни та натисніть кнопку Далі;

      виберіть поле Номер групи і натисніть кнопку Далі;

      виберіть функцію «Середнє» та клацніть на кнопці Далі; виберіть назву запиту «Середні оцінки» та натисніть кнопку Готово; Закрийте таблицю запиту. Перегляньте результати виконання запиту.

    4. Розробіть запит на збільшення (на 10%) заробітної плати тих викладачів, хто отримує менше 10000 руб.

    Для створення запиту на зміну заробітної плати викладачів:

      у рядку конструктора запиту «Оновлення» в полі Зарплата клацніть правою кнопкою миші для виклику контекстного меню і виберіть пункт «Побудувати…».

      за допомогою будівельника виразів введіть: [Зарплата]*1,1;

      виконайте запит, підтвердивши готовність оновлення даних;

      закрийте запит, підтвердивши його збереження; відкрийте форму Викладачі, перегляньте зміну заробітної плати у викладачів, які отримують менше 10000р., та закрийте форму.

    5. Створіть запит на видалення відрахованих студентів.

    Для запиту на відрахування студента гр. 2Г Перлова Кирила Миколайовича:

      створіть за допомогою "Майстра" "Простий запит"; у таблиці Студенти виберіть поля Прізвище, Ім'я, По-батькові, Номер групи; клацніть по кнопці Далі, а потім у вікні знову клацніть по кнопці Далі; у вікні, введіть ім'я запиту «Відраховані студенти»; клацніть на осередку «Змінити макет запиту», потім на кнопку Готово; у рядку Умови відбору введіть: у полі Прізвище - Перлов, у полі Ім'я - Кирило, у полі По-батькові – Миколайович, у поле Номер групи - 2Г;

      перегляньте видалений запис «Вид»- «Режим таблиці»

      якщо студент, що відраховується, обраний правильно, то перейдіть в режим конструктора і виконайте запит; закрийте запит, відкрийте форму Студенти (перевірте видалення запису про студента Перлова) і закрийте форму.

    6. Розробте запит на створення бази даних відмінників.

    Для створення запиту на створення бази даних відмінників:

    o Створіть Простий запит;

    o у таблиці Студенти виберіть поля Прізвище, Ім'я, По-батькові, Номер групи, а в таблиці Оцінки - поле Оцінки;

    o поставте прапорець на «Sum» та натисніть кнопку «ОК»

    o у вікні, введіть ім'я запиту «Відмінники»;

    o клацніть на осередку «Змінити макет запиту», потім на кнопку Готово;

    o у рядку Умови відбору поля «Sum - Оцінка: Оцінка» введіть 20 (відмінниками будемо вважати тих студентів, які за чотири іспити набрали 20 балів);

    o зніміть прапорець з «Виводити на екран»;

    o введіть ім'я таблиці Студенти-відмінники та клацніть по кнопці ОК;

    o підтвердіть створення таблиці та закрийте (зі збереженням) запит;

    o відкрийте вкладку Таблиці, потім таблицю Студенти-відмінники. Впевніться у правильності створення таблиці. Закрийте таблицю.

    7. Для всіх створених вами запитів розробіть форми.

    Створення звіту з групуванням даних

    На основі таблиці «Викладачі» створіть звіт із групуванням даних за посадами.

    o відкрийте вкладку «Створити» та виберіть пункт «Майстер звітів»

    .

    o у вікні виберіть поля, які будуть присутні у звіті (в даному випадку будуть всі поля з таблиці), а потім клацніть по кнопці Далі.

    o додайте угруповання по полю «Посада». Переведіть виділення на поле Посада, клацніть спочатку за кнопкою >>, а потім за кнопкою Далі.

    o параметри вікна залиште без змін (клацніть на кнопці Далі), виберіть стиль оформлення звіту і клацніть на кнопці Далі.

    o у вікні, введіть назву звіту Викладачі і натисніть кнопку Готово. Перегляньте, а потім закрийте сформований звіт, що з'явився на екрані.

    Створіть ще 3 звіти на власний розсуд.

    Припустимо, що користувачеві необхідно бачити усі документи в інформаційній базі одним списком. Незважаючи на протести розробника через негативний вплив на продуктивність цієї розробки, під тиском керівництва було вирішено зробити такий звіт.

    Що ж, якщо завдання вимагає реалізації - давайте виконаємо її!

    Як це зробити

    Відразу обмовимося, що у звіті будуть виводитися два поля: "Посилання" та "Проведено". Ці стандартні реквізити мають всі документи. Запит для отримання всіх документів ми формуватимемо програмним чином, оминаючи колекцію метаданих "Метадані.Документи". Для кожного елемента колекції створюватимемо запит до його таблиці за реквізитами "Посилання" та "Проведено", а далі об'єднуватимемо його результат з результатом аналогічного запиту до іншого документа.

    " ВИБРАТИ | Док . Посилання ЯК Посилання,| Док . Проведено ЯК Проведено |З| Документ . ABCКласифікація Покупців ЯК Док. Посилання ЯК Посилання,| Док . Проведено ЯК Проведено |З| Документ . Авансовий Звіт ЯК Док|ОБ'ЄДНАТИ ВСЕ |ВИБРАТИ | Док . Посилання ЯК Посилання,| Док . Проведено ЯК Проведено |З| Документ . АкредитивПереданий ЯК Док|ОБ'ЄДНАТИ ВСЕ | . . . "

    Якщо потрібно виводити взагалі всі реквізити, доступні у всіх документах, то програмне формування запиту буде виглядати набагато складніше. Щоб не ускладнювати приклад, ми виводитимемо лише названі стандартні реквізити.

    Під час компонування результату звіту необхідно помістити сформований запит до основного набору даних. Інші дії при програмному формуванні звіту будуть стандартними.

    Реалізація

    Тепер по порядку. Створивши зовнішній звіт, додамо до нього схему компонування даних. Як запит у наборі даних додамо наступний запит:

    Взагалі, у нашому випадку не важливо, який запит буде набір даних. Його ми додали лише для того, щоб зручно було налаштовувати структуру звіту в конструкторі, оскільки інакше поля на закладці "Налаштування" були б відсутніми. Кінцеве налаштування структури звіту таке:

    Тепер в обробнику події "ПріКомпонівціРезультату" відключимо стандартну обробку та виконаємо формування звіту програмно. Програмний код формування звіту на СКД представлений на наступному лістингу:

    Процедура ПриКомпонівціРезультату(ДокументРезультат, ДаніРозшифрування, СтандартнаОбробка) СтандартнаОбробка = Брехня ; // відключаємо стандартний висновок звіту - виводитимемо програмноНалаштування = Компонувальник Налаштувань. Налаштування; // Отримуємо налаштування звітуДаніРозшифрування = Нові ДаніРозшифруванняКомпонуванняДаних; // Створюємо дані розшифровкиКомпонувальникМакета = Новий КомпонувальникМакетаКомпонуванняДаних; // Створюємо компонувальник макета // Ініціалізуємо макет компонування використовуючи схему компонування даних // і створені раніше налаштування та дані розшифровки" ) ; МакетКомпонування = КомпонувальникМакета. Виконати (СхемаКомпонуванняДаних, Налаштування, ДаніРозшифрування) ; // Скомпонуємо результатПроцесорКомпонування = Новий ПроцесорКомпонуванняДаних; ПроцесорКомпонування. Ініціалізувати(МакетКомпонівки, , ДаніРозшифрування) ; ДокументРезультат. Очистити(); // Виводимо результат у табличний документПроцесорВиводу = Новий ПроцесорВиводуРезультатуКомпонуванняДанихВТабличнийДокумент; Процесор Висновку. ВстановитиДокумент(ДокументРезультат); Процесор Висновку. Вивести(ПроцесорКомпонівки) ; КінецьПроцедури

    Усі стандартно. Тепер головне. Текст запиту для набору даних слід замінити до компонування макета. Як було зазначено вище, програмний код запиту буде формуватися при обході колекції метаданих документа. На наступному лістингу представлений програмний код для динамічного формування тексту запиту:

    // .................................................................. СхемаКомпонуванняДаних = ОтриматиМакет(" ОсновнаСхемаКомпонівкиДаних" ) ; // Отримуємо схему компонування данихСхемаКомпонівкиДаних. Набори даних. НабірДаних1. Запит = ""; // Очищаємо запит у наборі данихДокументиКонфігурації = Метадані. документи; // Отримуємо колекцію метаданих документівКількість документів = Документи Конфігурації. Кількість (); // Визначаємо загальну кількість документів у конфігураціїСч = 1; Текст Запиту = ""; Для кожного Док З ДокументиКонфігурації Цикл ТекстЗапиту = ТекстЗапиту + // Для кожного документа формуємо текст запиту до таблиці" ВИБРАТИ | Док . Посилання ЯК Посилання,| Док . Проведено ЯК Проведено |З| Документ . " + Док. Ім'я + " ЯК Док " ; // У текст запиту необхідно лише підставити ім'я таблиці документа в дереві метаданихЯкщо Сч КількістьДокументів Тоді // Якщо документ не останній у колекції - додаємо інструкцію "ОБ'ЄДНАТИ ВСЕ" дляТекст Запиту = Текст Запиту + // об'єднання результатів запитів за документами до єдиного списку" |ОБ'ЄДНАТИ ВСЕ | " ; КінецьЯкщо ; Сч = Сч + 1; Кінець циклу; СхемаКомпонівкиДаних. Набори даних. НабірДаних1. Запит = Текст Запиту; // Поміщаємо новий текст запиту набір данихМакетКомпонування = КомпонувальникМакета. Виконати (Схема Компонування Даних, Налаштування, Дані Розшифровки) ; // Компонуємо макет // ....................................................................

    Звіт готовий до тестування.

    Що зрештою?

    Запустимо звіт у режимі 1С:Підприємство. Звіт успішно виконається, і ми побачимо список усіх документів в інформаційній базі.

    За всіх виконаних дій звіт має всі стандартні можливості СКД: розшифрування, налаштування структури звіту, відбори, умовне оформлення та інше.

    Запит до таблиць всіх документів не є найоптимальнішим рішенням для перегляду повного списку документів в інформаційній базі, оскільки формує відносно "важкий" запит СУБД. Найбільш правильно було б використовувати об'єкт конфігурації "Журнал документів", але це вже виходить за межі статті.



    Подібні публікації