Конструктор запросов, конструктор выходных форм

 

Умение вручную сформировать запрос пригодится всегда, но можно его сделать и с помощью конструктора (Конструктора выходных форм, конструктора запросов). Конструктор запросов можно открывать как в режиме конфигуратора, так и в пользовательском режиме. Если на поле текстового документа в отчете <Знакомство с запросом» сделать щелчок правой клавишей мыши, то в контекстном меню будет соответствующий пункт.

Знакомиться с конструктором будем на примере создания отчета «Закупки» (следует отметить, что знакомиться мы будем с конструктором выходных форм, а не с конструктором запросов, но различия между ними небольшие).

Создадим отчет, дадим ему имя «Закупки» и сразу же перейдем на закладку «Макеты». Используя кнопку «Конструкторы»: вызовем нужный нам конструктор. В открывшейся сразу после того форме можно определить имя выходной формы отчета.

Далее на закладке «таблицы и поля» необходимо выбрать поля запроса.

 

 

 

Следует первоначально выбирать поля из вложенной таблицы, а потом уже из основной таблицы документа (иначе не получится воспользоваться группировкой).

На закладке «Связи» требуется определить вид и условие соединения двух таблиц:

 

 

В случае, если отмечен левый флажок «Все», то используется «Левое соединение», и первой таблицей является «таблица № 1», если только правое «Все», то также используется «Левое соединение», но первой таблицей является «Таблица №2». Если отмечены оба флажка, то это «Полное соединение. если оба сброшены — это «Внутреннее».

На следующей закладке в случае необходимости определяется группировка (по каким полям будет производиться группировка, какие агрегатные функции будут рассчитываться).

 

 

На любом этапе работы в конструкторе, используя кнопку «Запрос», можно посмотреть текст получающегося запроса.

Далее на закладке «Условия» можно определять отборы, накладываемые на записи. На закладке «Дополнительно» указывать ряд дополнительных признаков (первые, различные, для изменения). На закладке «Объединения/Псевдонимы» настраивать объединения и указывать псевдонимы и т.д. В нашем случае будем далее настраивать только раздел «Итоги».

 

 

Для того чтобы не усложнять первое знакомство –с конструктором выходных форм на закладке «Отчет» необходимо снять флаги:«Использовать построитель отчета» и «Группировать строки»

 

 

На закладке «Выходная форма» отмечаем вариант расположения процедуры «Модуль» (форма настройки построителя отчета не содержит доступных элементов, т.к. был отключен соответствующий флажок на предыдущей закладке).

 

В результате конструктор создаст выходную форму, пропишет необходимые процедуры, создаст макет.

 

 

В модуле формы прописана следующая процедура:

 

 

В модуле отчета:

 

 


Практикум № 20

1.Создайте с помощью конструктора отчет по продажам товаров. В нем после установки периода должна содержаться следующая информация: какой покупатель, какие товары, в каком количестве и на какую сумму закупал.

2. Модифицируйте созданный вами отчет. Необходимо добавить возможность выбора контрагента. В случае, если контрагент не выбран, отчет должен пре доставлять информацию по всем контрагентам (ни в коем случае нельзя для реализации подобного механизма использовать конструкцию «В иерархии»).

 

Способы обхода результатов запроса, группировки в табличном документе

 

В предыдущем примере в основном использовался линейный способ обхода результата (метод «Выбрать()» вызывался без явного указания способа обхода). Кроме линейного существует еще иерархический обход и обход результата по группам с иерархией. Для явного указания способа обхода первым параметром метода «Выбрать» необходимо указать значение системного перечисления «ОбходРезультатаЗапроса».

 

Определены возможные значения:

 

• Прямой

• ПоГруппировкам

• ПоГруппировкамСИерархией

Разбираться с порядком обхода будем на примере отчета «ПорядокОбхода»

 

 

У отчета необходимо определить два реквизита:

 

НачПериода - тип «Дата»

КонПериода — тип «Дата»

 

В диалоге предлагается (с использованием элемента формы «Панель») определить две страницы. На первой находятся элементы формы, связанные с реквизитами отчета, табличное поле (имя «тПоле», тип «ТаблицаЗначений»), поле выбора (имя «ОбходРезультата», тип «Произвольный»). На второй странице находится поле табличного документа (имя «тблРезультат»).

 

 

 

Текст модуля формы:

 


Текст модуля отчета:

 

 

Сформируйте данный отчет, выбирая различные порядки обхода, смотрите получаемый результат.

 

Практикум № 21

В отчете «Порядок» обхода измените текст запроса. Необходимо получить данные о том: какой контрагент, какие товары, на какую сумму поставлял. Необходимо видеть итоги по отдельным контрагентам, для каждого контрагента итоги по группам номенклатуры, и самим товарным позициям. Проведете все необходимые модификации отчета (данная информация должна выводиться в табличный документ,). Поэкспериментируйте с порядком обхода.

 

Рассмотрим еще один пример

Рассмотрим отчет «Вложенная таблица». Данный отчет иллюстрирует. как за счет «обхода» (на самом деле механизм основан на том, что поле, содержащее табличную часть, имеет тип «Результат запроса») можно получить данные, которые не «запрашивались явно» при написании текста запроса.

В диалоге основной формы отчета необходимо разместить, элемент формы «поле табличного документа» (имя «тблРезультат»).

 

Модуль отчета приведен ниже:

 

 


Дополнительные возможности построителя выходных форм

 

Когда рассматривали возможности построителя выходных форм, в целях «упрощения знакомства» не воспользовались рядом его возможностей. Рассмотрим их. Для этой цели вернемся к отчету «Закупки». Запустим конструктор отчетных форм и изменим настройки на закладке «Итоги» (определим итоговые группировки и агрегатные итоговые функции).

 

 

 

На закладке «Отчет» включите все флаги группы «Выводить отчет в». После этого можно пройти все вложенные закладки для выбора первоначальных настроек табличного документа, сводной таблицы, диаграммы, сводной диаграммы.

 

 

 

На закладке «Выходная форма» можно изменить предлагаемые по умолчанию настройки «Формы настройки построителя отчета» (по умолчанию элемент управления, позволяющий управлять отбором, размешается в основной форме отчета, а не в форме настроек).

 

 

 

Построитель отчета

Построитель отчета является специализированным объектом системы, упрощающим процесс создания гибких (с точки зрения пользователя) отчетных форм. Использование построителя дает возможность размещения в диалоге элементов управления управляющих отбором, сортировкой, составом полей, составом измерений строк и колонок.

Минимальным вариантом использования построителя является передача ему текста запроса и выполнения связки методов «ЗаполнитьНастройки(), Выполнить() и Вывести()».

Первоначальная инициализация построителя отчета ; производиться в процедуре основной формы отчета:

 

 

 

 

Оставшаяся части инициализации выполняется в процедуре «ЗакупкиВывести». Соответствующий фрагмент приведен ниже:

 

 

 

Сводная таблица

В режиме исполнения в сводной таблице можно изменять состав выводимых измерений (аналитических разрезов таблицы), и состав размещаемых данных (в ячейках таблицы). Функциональность данного механизма «держится» на разделе «Итоги» текста запроса. Состав возможных измерений задается итоговыми группировками запроса, состав данных определяется агрегатными итоговыми функциями.

 

Текст процедуры, отвечающий за инициализацию свободной таблицы, приведен ниже:

 

 

Сама встроенная таблица относится к встроенным таблицам поля табличного документа. Для ее «вставки» в ручном режиме необходимо выделить какой либо диапазон ячеек в поле табличного документа и выполнить команду, указанную на рисунке:

 

 

В режиме исполнения настройка состава и способа отображения данных производится при выполнении пункта контекстного меню «Отображать поля».

Использование диаграмм

Диаграмма по своей сути является графическим представлением таблицы (состоящей из точек и серий, на «пересечении» которых находятся данные).

Использование диаграмм совместно с построителем отчета фактически сводится к применению двух методов, размещенных в процедуре «ЗакупкиВывести()»

 

 

Сама диаграмма отображается с помощью специального элемента управления «Поле диаграммы».

Использование сводных диаграмм

При использовании диаграмм в режиме исполнения пользователь сам может определить состав отображаемых в ней данных (можно провести некую аналогию со сводной таблицей).

Ниже приводится фрагмент процедуры «ЗакупкиВывести()» производящий инициализацию сводной диаграммы: