Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания 1С8.0_Продол_3.doc
Скачиваний:
9
Добавлен:
01.03.2016
Размер:
1.46 Mб
Скачать

Процедура ПриОткрытии() // Заполним список поля выбора

ПолеВыбора = ТипДиаграммы. Гистограмма;

ЭлементыФормы.Диаграмма.ТипДиаграммы = ПолеВыбора;

Сформировать(); КонецПроцедуры

В теле модуля формы опишем заполнение списка выбора для поля выбора:

СписокВыбора = ЭлементыФормы.ПолеВыбора.СписокВыбора;

СписокВыбора.Добавить(ТипДиаграммы.График, "График"); СписокВыбора.Добавить(ТипДиаграммы.Гистограмма, "Гистограмма"); СписокВыбора.Добавить(ТипДиаграммы.ГистограммаОбъемная, "Гистограмма 3D"); СписокВыбора.Добавитъ(ТипДиаграммы.ГистограммаГоризонтальная,

"Гистограмма горизонтальная"); СписокВыбора.Добавить(ТипДиаграммы.ГистограммаГоризонтальнаяОбъемная,

"Гистограмма горизонтальная 3D");

СписокВыбора.Добавить(ТипДиаграммы.Круговая, "Круговая"); СписокВыбора.Добавить(ТипДиаграммы.КруговаяОбъемная,"Круговая объемная"); СписокВыбора.Добавить(ТипДиаграммы.Изометрическая," Изометрическая"); СгшсокВыбора.Добавить(ТипДиаграммы.ИзометрическаяНепрерывная,

"Изометрическая непрерывная"); СписокВыбора.ДобавитьСГипДиаграммы.ИзометрическаяЛента,

"Изометрическая лента");

СписокВыбора.Добавить(ТипДиаграммы.ИзометрическаяПирамида, "Изометрическая пирамида");

И в заключение, создадим обработчик события поля выбора «При изменении», и выполним в нем установку типа диаграммы:

ПроцедураПолеВыбораПриИзмененииЭлемент)

ЭлементыФормы.Диаграмма.ТипДиаграммы = ПолеВыбора; КонецПроцедуры

Запустим 1С:Предприятие в режиме отладки и откроем отчет «РейтингКлиентов». Обратите внимание, что при наведении курсора на столбец гистограммы появляется подсказка:

Теперь изменим тип диаграммы на «Круговая объемная>:

Только что мы рассмотрели с вами общий случай заполнения Диаграммы данными. Однако если исходные данные могут быть получены в виде таблицы значений или области ячеек табличного Документа, существует более простой и эффективный способ заполнения диаграммы данными, используя свойство диаграммы - «ИсточникДанных».

Вернемся в модуль формы отчета «РейтингКлиентов» и все строки, которыми мы добавляли в диаграмму данные:

ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать();

Диаграмма = ЭлементыФормы.Диаграмма; //запретить автотранспонирование диаграммы Диаграмма.АвтоТранспонирование = Ложь;

//создать единственную точку диаграммы ТочкаДиаграммы = Диаграмма.УетановитьТочку("Доход");

//перебрать выборку результата запроса и создать серии и значения Пока ВыборкаРезультатаЗапроса.Следующий() Цикл ТекущаяСерияДиаграммы = Диаграмма

.УстановитьСерияКВыборкаРезультатаЗапроса.Клиент); Диаграмма.УстановитьЗначение(ТочкаДиаграммы, ТекущаяСерияДиаграммы,

ВыборкаРезультатаЗапроса.Доход); КонецЦикла;

//разрешить автотранспонирование диаграммы Диаграмма.АвтоТранспонирование = Истина;

Заменим одной строкой:

ЭлементыФормы.Диаграмма.ИсточникДанных = Запрос,Выполнить().Выгрузить();

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

Запустите 1С:Предприятие в режиме отладки и проверьте работу отчета. Обратите внимание на то, что некоторые типы диаграмм выглядят «некрасиво» (график) или не отображаются совсем (изометрическая непрерывная, изометрическая лента). Это связано с тем, что при использовании источника данных нет возможности использовать свойство диаграммы «АвтоТранспонирование» и нужно обрабатывать транспонирование диаграммы свойство СерииВСтроках).

Таким образом, на примере этого отчета мы продемонстрировали как создавать запросы, используя конструктор запросов, и как использовать диаграмму для визуализации результата запроса.

Универсальный отчет

На примере создания универсального отчета мы познакомимся с объектом встроенного языка ПостроительОтчета и узнаем как работать со сводной таблицей.

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

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

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

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

Автоматически параметры настройки формируются вызовом метода ЗаполнитьНастройки() следующим образом:

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

  • в список полей, выбранных для вывода в отчет (свойство «ВыбранныеПоля»), добавляются все поля из списка выборки,

  • полями, доступными для выбора в качестве измерений, становятся все поля из предложения ИТОГИ ПО и все их подчиненные поля,

  • в список измерений по строкам (свойство «ИзмеренияСтроки») добавляются все поля из предложения ИТОГИПО,

  • в доступные отборы (свойство «Отбор») добавляются параметры виртуальных таблиц.

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

  • ВЫБРАТЬ ... - описывает поля, которые пользователь сможет выбирать для вывода,

  • ГДЕ ... - описывает поля, на которые пользователь может накладывать ограничения,

  • УПОРЯДОЧИТЬПО ... - описывает поля для обозначения порядка,

ИТОГИ ПО ... - описывает поля, по которым будут выводиться итоговые значения.

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