В этом примере показано, как базовый отчет был создан с помощью Report Explorer. Этот отчет объясняет и иллюстрирует магические квадраты - матрицы, столбцы, строки и диагонали которых складываются в одно и то же число (см. magic
ссылка на функцию в MATLAB® документация).
Для создания этого отчета необходимо выполнить следующие основные задачи:
Примечание
Вам не нужно знать программное обеспечение MATLAB, чтобы использовать этот пример. Однако знание MATLAB полезно для понимания кода MATLAB, который выполняется во время генерации отчетов.
Этот пример включает отдельные разделы для различных видов задач создания и генерации отчетов. Каждый раздел основан на предыдущих разделах. Однако, если вы хотите работать с более поздним разделом, не выполнив предыдущие разделы, можно просмотреть завершенный файл настройки отчета: Magic Squares Report
.
Чтобы настроить отчет о магических квадратах, сначала создайте файл настройки для хранения настройки. Затем добавьте объекты MATLAB, называемые компонентами, в настройку, чтобы задать содержимое отчета.
Чтобы создать файл настройки отчета:
Запустите сеанс программного обеспечения MATLAB.
Откройте Report Explorer. На панели инструментов MATLAB, на вкладке Apps, в разделе Database Connectivity and Reporting, нажмите Report Generator.
Выберите File > New, чтобы создать файл настройки отчета. Новая настройка отчета имеет имя по умолчанию Unnamed.rpt
.
На панели свойств справа:
Чтобы сохранить отчет в текущей рабочей папке, выберите Present working directory
из списка Directory.
Установите File format значение HTML (from template)
чтобы сгенерировать выход отчета в формате HTML. Использование (from template)
опция создает таблицу содержимого отчета в формате, который можно развернуть и свернуть.
В Report description текстовом поле замените существующий текст следующим текстом.
This report creates a series of magic squares and displays them as images. A magic square is a matrix in which the columns, rows, and diagonal all add up to the same number.
Примечание
При изменении поля панели свойств изменяется цвет фона. Это указывает, что в этом поле есть неприменимые изменения. Как только вы выполняете любое действие с другим компонентом, MATLAB Report Generator™ применяет изменения, и цвет фона снова становится белым.
Сохраните отчет. Выберите File > Save As и назовите файл настройки отчета magic_squares.rpt
.
Новое имя файла появится на панели Контур (Outline).
Для создания содержимого отчета см. раздел Добавление содержимого отчета с использованием компонентов.
Компоненты отчета определяют информацию, которая будет включена в отчет. На следующем рисунке показан пример страницы из отчета, созданного в этом примере, с выделением компонентов, используемых для создания отчета.
Отчет о магических квадратах использует переменные, определенные в рабочем пространстве MATLAB, чтобы задать количество и размеры квадратов для отображения и отображать ли переменные как таблицы чисел или изображения цветовых квадратов:
Переменная magicSizeVector задает массив магических квадратов
largestDisplayedArray переменная задает размер самого большого магического квадрата, который будет отображаться как массив чисел
Можно потребовать, чтобы пользователь создал эти переменные в рабочем пространстве MATLAB перед запуском отчета. Однако лучшее решение - позволить отчету создать переменные, используя Evaluate MATLAB Expression
компонент.
Чтобы использовать компонент Evaluate MATLAB Expression для определения переменных отчета:
На панели Контур слева выберите корневой компонент настройки отчета.
На панели «Библиотека» в середине, в разделе MATLAB, выберите Evaluate MATLAB Expression.
На панели свойств справа щелкните значок рядом с Add component to current report, чтобы вставить компонент Evaluate MATLAB Expression в отчет.
Редактировать информацию о компоненте на панели « Свойствах» можно только после добавления компонента к отчету.
На панели Контур (Outline) откроется Eval
компонент появляется под magic_squares
отчет.
Значок в левом верхнем углу Eval
компонент указывает, что этот компонент не может иметь дочерние компоненты. По умолчанию все компоненты, которые вы добавляете с Eval
выбранные компоненты являются одноуровневыми для этого компонента.
Опции для Evaluate MATLAB Expression компонента отображаются на панели « Свойствах».
Чтобы исключить данные кода MATLAB и его выход в этом отчете, снимите флажки Insert MATLAB expression in report и Display command window output in report.
В Expression to evaluate in the base workspace текстовом поле замените существующий текст следующим кодом MATLAB.
Совет
Скопируйте и вставьте этот текст из HTML в Report Explorer.
%This MATLAB code sets up two variables %that define how the report runs. %magicSizeVector is a list of MxM %Magic Square sizes to insert into %the report. Note that magic %squares cannot be 2x2. magicSizeVector=[4 8 16 32]; %largestDisplayedArray sets the %limit of array size that will be %inserted into the report with the %Insert Variable component. largestDisplayedArray=15;
В Evaluate this expression if there is an error текстовом поле замените существующий текст следующим текстом.
disp(['Error during eval: ', evalException.message])
Это приводит к ошибке при сбое кода MATLAB.
Совет
Чтобы немедленно выполнить эти команды, в правом верхнем углу обозревателя отчетов нажмите кнопку Eval Now. Это подтверждает, что ваши команды верны, чтобы уменьшить шансы на проблемы генерации отчетов.
Сохраните отчет..
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
Чтобы создать страницу заголовка для отчета, используйте компонент Title Page.
На панели Контур слева выберите Eval
компонент.
В Панель Options посередине, под Formatting, добавьте компонент Title Page к отчету.
Потому что Eval
значок компонента указывает, что этот компонент не может иметь дочерних элементов, Title Page компонент является одноуровневым компонентом Eval
компонент. Точно так же компонент Title Page не может иметь дочерних компонентов.
Примечание
Чтобы использовать компонент Title Page, вашему отчету нужен компонент Chapter. Компонент Chapter еще не добавлен, поэтому на панели « Свойствах» отображается сообщение о том, что для корректного отображения компонента Title Page необходима глава. Поскольку позже в этом примере вы добавляете Chapter компоненты к этому отчету, можно игнорировать это сообщение.
На панели свойств справа используйте вкладку Main, чтобы ввести информацию о заголовке странице.
В Title текстовом поле введите Magic Squares
.
В Subtitle текстовом поле введите Columns, Rows, Diagonals: Everyone is Equal
.
В разделе Options выберите Custom author
из списка.
В поле справа от Custom author поля введите Albrecht Durer
.
Альбрехт Дюрер создал травление, которое содержит магический квадрат. Ваш итоговый отчет включает изображение этого травления.
Установите флажок Include copyright holder and year.
В следующем текстовом поле введите The MathWorks
.
Во втором текстовом поле введите 1988
.
На панели « Свойствах» на вкладке «Abstract» введите:
An introduction to Magic Squares and their meaning.
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
Добавить главу в отчет можно с помощью компонента Chapter/Subsection.
На левой панели Контур (Outline) выберите компонент Title Page.
На панели «Библиотека» в разделе «Formatting» добавьте компонент Chapter/Subsection.
The Eval
Title Page, и Chapter компоненты являются дочерними компонентами верхнего уровня отчета и являются одноуровневыми узлами.
Для пользовательского заголовка главы на панели « Свойствах» справа введите Magic Squares Explained
.
На панели «Контур» отображается заголовок главы.
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
Включить вводный текст в первую главу путем добавления Paragraph и Text компонентов.
На левой панели Контур (Outline) выберите компонент Chapter.
На панели «Библиотека» в разделе «Formatting» добавьте компонент Paragraph.
На панели Контур (Outline) новый компонент появляется как дочерний компонент компонента Chapter.
По умолчанию Paragraph компонент наследует свой текст от дочерних компонентов. Добавьте два компонента Text.
Примечание
Компонент Text должен иметь Paragraph компонент в качестве родительского элемента.
На панели «Библиотека» в категории Formatting добавьте к контуру два Text компонента.
На панели Контур выберите первое Text
компонент.
В Text to include in report текстовом поле введите %<help('magic')>
.
The %
скобки со знаком и углом <>
укажите программному обеспечению MATLAB Report Generator, что это код MATLAB для оценки. Область команды help('magic')
отображает информацию о MATLAB magic
функция.
На панели Контур выберите второе Text
компонент.
В Text to include in report текстовом поле введите этот текст.
The German artist Albrecht Durer (1471-1528) created many woodcuts and prints with religious and scientific symbolism. One of his most famous works, Melancholia I, explores the depressed state of mind that opposes inspiration and expression. Renaissance astrologers believed that the Jupiter magic square (shown in the upper right portion of the image) could aid in the cure of melancholy. The engraving's date (1514) can be found in the lower row of numbers in the square.
Сохраните отчет.
Содержание первой главы теперь полно.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
Создайте изображение Альбрехта Дюрера и включите его в отчет.
На левой панели Контур (Outline) выберите компонент Chapter.
На панели «Библиотека» в разделе «MATLAB» добавьте компонент Evaluate MATLAB Expression.
Переместите компонент Eval под компонент Paragraph так, чтобы изображение следовало вводному тексту. Чтобы переместить его, на панели инструментов щелкните стрелу down.
С Eval
компонент выбран, установите следующие свойства:
Снимите флажки Insert MATLAB expression in report и Display command window output in report. Вы не хотите включать код или его выход в отчет.
В Expression to evaluate in the base workspace текстовом поле замените существующий текст этим кодом MATLAB.
%This loads a self-portrait of Albrecht %Durer, a German artist. There is a %magic square in the upper right corner %of the image. durerData=load('durer.mat','-mat'); figure('Units','Pixels',... 'Position',[200 200 size(durerData.X,2)*.5 size(durerData.X,1)*.5 ]); image(durerData.X); colormap(durerData.map); axis('image'); set(gca,... 'Xtick',[],... 'Ytick',[],... 'Units','normal',... 'Position',[0 0 1 1]); clear durerData
Этот код MATLAB отображает травление Дюрера в графическом окне MATLAB.
В Evaluate this expression if there is an error текстовом поле замените существующий текст следующим текстом:
disp(['Error during eval: ', evalException.message])
Этот код выполняется, если ошибка возникает при загрузке травления Дюрера.
На панели Контур слева выберите Eval
компонент.
На панели «Библиотека» в разделе «Handle Graphics» добавьте в отчет компонент Figure Snapshot.
Чтобы встроить компонент изображения (такой как Image или Figure Snapshot), включите его в компонент Paragraph.
На панели « Свойствах»:
В списке Paper ориентации выберите Portrait
.
В списке Invert hardcopy выберите Don't invert
.
Выбор этой опции не позволяет изменять цвета изображения на экране для печати.
Следующие три шага настраивают отчет, чтобы удалить изображение из рабочего пространства MATLAB после добавления изображения к отчету.
На панели Контур (Outline) выберите компонент Figure Snapshot.
На панели «Библиотека» в разделе MATLAB добавьте в отчет компонент Evaluate MATLAB Expression.
На панели « Свойствах»:
Снимите флажки Insert MATLAB expression in report и Display command window output in report. Вы не хотите включать код или его выход в отчет.
В Expression to evaluate in the base workspace текстовом поле замените существующий текст на:
%This command deletes the Durer image delete(gcf);
The delete(gcf)
команда удаляет текущее изображение в рабочем пространстве MATLAB, в этом случае - травление Дюрера.
В Evaluate this expression if there is an error текстовом поле замените существующий текст следующим текстом:
disp(['Error during eval: ', evalException.message])
Этот код выполняется, если ошибка возникает при удалении травления Дюрера.
Сохраните отчет.
Добавьте главу в отчет для каждого магического квадрата, заданного переменной magicSizeVector отчета. Вы используете For Loop
компонент для выполнения этой повторяющейся задачи. Чтобы создать магические квадраты и их изображения, вы выполняете следующие задачи:
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
На левой панели Контур (Outline) выберите компонент Chapter.
На панели «Библиотека» в разделе «Logical and Flow Control» добавьте в отчет компонент For Loop.
Этот For Loop компонент появляется внутри компонента Chapter. Однако магические квадраты должны быть обработаны после первой главы, поэтому сделайте for
компонент - родной брат компонента Chapter, а не ребенок.
На панели Контур выберите for
компонент.
Щелкните left стрелы, чтобы создать for
компонент - одноуровневый компонент компонента Chapter.
На панели свойств справа:
В End текстовом поле замените существующий текст следующим текстом:
length(magicSizeVector)
Это - длина вектора, которая содержит различные размеры для магических квадратных матриц.
В Variable name текстовом поле замените существующий текст следующим текстом:
MAGIC_SQUARE_INDEX
Эта переменная действует как индекс цикла.
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
Создать главу для каждого квадрата путем добавления компонента Chapter к отчету в качестве дочернего элемента компонента For Loop. Это приводит к созданию генератором отчетов главы о каждой итерации цикла for во время генерации отчетов.
На панели Контур слева выберите for
компонент.
На панели «Библиотека» в разделе «Formatting» добавьте компонент Chapter/Subsection к настройке отчета.
Он становится дочерним элементом for
компонент.
На панели « Свойствах» справа выберите Custom
из списка Title и введите это для заголовка главы:
Magic Square # %<MAGIC_SQUARE_INDEX>
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
Извлеките размер каждой магической квадратной матрицы из magicSizeVector
использование компонента Evaluate MATLAB Expression.
На левой панели контура выберите нижний Chapter компонент.
На панели «Библиотека» в средней части MATLAB категории добавьте компонент Evaluate MATLAB Expression к настройке отчета.
На панели « Свойствах»:
Снимите флажки Insert MATLAB expression in report и Display command window output in report.
В Expression to evaluate in the base workspace текстовом поле замените существующий текст на:
magic_Square_Size=magicSizeVector(MAGIC_SQUARE_INDEX);
Эта команда извлекает следующий размер для магического квадрата из вектора размеров, инициализированных в первой Eval
компонент доклада. Переменная magic_Square_Size
представляет размер обрабатываемого текущего магического квадрата.
В Evaluate this expression if there is an error текстовом поле замените существующий текст следующим текстом:
disp(['Error during eval: ', evalException.message])
Этот код выполняется, если ошибка возникает при попытке извлечения значения из magicSizeVector
.
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
Вставьте размер магического квадрата в отчет с помощью компонентов Paragraph и Insert Variable.
На левой панели контура выберите нижний Eval компонент.
На панели «Библиотека» в разделе «Formatting» добавьте компонент Paragraph к настройке отчета.
Не изменяйте свойства. Переменная, которая содержит размер магического квадрата, находится в этом абзаце.
На панели Контур выберите компонент Paragraph (под for
компонент).
На панели «Библиотека» в разделе MATLAB добавьте компонент Insert Variable в настройку отчета.
На панели свойств справа:
В Variable name текстовом поле введите magic_Square_Size
.
Из списка Display as выберите Inline text
.
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
Чтобы создать магический квадрат и отобразить связанную матрицу или изображение, используйте компонент Evaluate MATLAB Expression.
На левой панели контура выберите нижний Paragraph компонент.
На панели «Библиотека» в разделе «MATLAB» добавьте компонент Evaluate MATLAB Expression к настройке отчета.
Сделайте этот Evaluate MATLAB Expression компонент одноуровневым для Paragraph компонента. На панели Контур (Outline) выберите компонент Eval. Щелкните на левой стреле на панели инструментов.
На панели свойств справа:
Снимите флажки Insert MATLAB expression in report и Display command window output in report.
В Expression to evaluate in the base workspace текстовом поле замените существующий текст этим кодом MATLAB.
% This MATLAB script produces a magic % square of size magic_Square_Size % and creates an image of that square. mySquare=magic(magic_Square_Size); clf imagesc(mySquare); title(sprintf('Magic Square N=%i',magic_Square_Size)) set(gca,'Ydir','normal'); axis equal; axis tight;
Этот код создает матрицу магического квадрата mySquare
размера magic_Square_Size
, и открывает изображение этой матрицы в графическом окне MATLAB.
В Evaluate this expression if there is an error текстовом поле замените существующий текст следующим текстом:
disp(['Error during eval: ', evalException.message])
Этот код выполняется, если ошибка возникает при создании и отображении магического квадрата.
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, представленном в разделе Ведение интерактивного отчета MATLAB.
Если вы не завершили предыдущие разделы этого примера, откройте завершенный файл настройки отчета: Magic Squares Report
.
Использование Logical If
, Logical Then
, и Logical Else
компоненты, чтобы определить, отображать ли магический квадрат как массив чисел или как изображение.
На панели Контур слева выберите Eval
компонент.
На панели «Библиотека» в разделе Logical and Flow Control дважды щелкните Logical If.
На панели свойств справа в Test Expression текстовом поле замените существующий текст следующим текстом:
magic_Square_Size<=largestDisplayedArray
Эта команда проверяет, является ли текущий размер матрицы (magic_Square_Size
) меньше или равно значению, присвоенному в первом Eval
компонент доклада (largestDisplayedArray=15
).
Чтобы обработать результат этого Logical If компонента, создайте два дочерних компонента - Logical Then и Logical Else. Если magic_Square_Size
меньше или равен 15, матричная переменная появляется в отчете. Если magic_Square_Size
больше 15, матричное изображение появляется в отчете.
На панели Контур выберите if
компонент.
На панели «Библиотека» в разделе Logical and Flow Control дважды щелкните Logical Else.
На панели Контур выберите if
снова компонент.
На панели «Библиотека» в разделе Logical and Flow Control дважды щелкните Logical Then.
The then
компонент появляется над else
компонент.
Сохраните отчет.
Примечание
Этот раздел основан на пошаговом примере, представленном в Maintain Interactive MATLAB Report.
Чтобы увидеть завершенный файл настройки отчета, откройте Magic Squares Report
.
На панели Контур слева выберите then
компонент.
На панели Library в середине, под MATLAB, дважды кликните Insert Variable.
На панели свойств справа:
В Variable name текстовом поле введите mySquare
, которая является переменной, содержащей магический квадрат заданного размера.
Из списка Title выберите None
.
В Array size limit текстовом поле введите 0
.
Этот Variable
компонент отображает магическую квадратную матрицу, сохраненную в mySquare
переменная.
На панели Контур выберите else
компонент.
На панели «Библиотека» в разделе Handle Graphics дважды кликните Figure Loop.
Не изменяйте его свойства.
На панели Контур выберите Figure Loop
компонент.
На панели «Библиотека» в разделе Handle Graphics дважды кликните Figure Snapshot.
На панели « Свойствах»:
В списке Paper orientation выберите Portrait
.
В списке Image size выберите Custom
.
В списке Image size введите [5 4]
для пользовательского размера изображения.
В списке Invert hardcopy выберите Invert
.
Эта опция изменяет цвета темных осей на цвета светлых осей и наоборот.
Общая панель выглядит следующим образом.
Сохраните отчет.
Вы можете добавить код MATLAB к отчету, используя компонент Evaluate MATLAB Expression (также называемый Eval
компонент).
Диалоговое окно Evaluate MATLAB Expression компонента содержит флажок Evaluate this expression if there is an error. Диалоговое окно включает код обработки ошибок по умолчанию, который можно использовать, или можно создать свой собственный код обработки ошибок.
Если вы не меняете код обработки ошибок по умолчанию, то когда вы генерируете отчет, и есть ошибка в коде MATLAB, который вы добавили:
Если вы снимаете Evaluate this expression if there is an error флажок, то создается полный отчет, не отображая сообщение об ошибке в командной строке MATLAB.
Если установить Evaluate this expression if there is an error флажок, создается полный отчет, и в командной строке MATLAB появляется сообщение об ошибке.
Чтобы остановить генерацию отчетов, когда в коде MATLAB, который вы добавили, измените вторую и третью строки следующего кода обработки ошибок по умолчанию, как описано ниже:
warningMessageLevel = 2; displayWarningMessage = true; failGenerationWithException = false; failGenerationWithoutException = false;
Чтобы остановить генерацию отчетов и отобразить исключение, измените код по умолчанию на:
displayWarningMessage = false; failGenerationWithException = true;
Чтобы остановить генерацию отчетов без отображения исключения, измените код по умолчанию на:
displayWarningMessage = false; failGenerationWithoutException = true;
Если вы хотите заменить код обработки ошибок по умолчанию, используйте evalException.message
переменная в коде для возврата информации об исключении.
Примечание
Этот раздел основан на пошаговом примере, представленном в Maintain Interactive MATLAB Report.
Чтобы увидеть завершенный файл настройки отчета, откройте Magic Squares Report
.
В начале этого примера вы указали HTML (from template)
в качестве выхода формата доклада. Если вы этого не сделали, или если вы открыли завершенный файл настройки отчета позже в руководстве, установите его таким образом.
На панели инструментов нажмите кнопку Report, чтобы сгенерировать отчет.
Во время создания отчета в окне Список сообщений укажите уровень детализации, который должен отображаться в окне Список сообщений.
На панели Контур Report Explorer каждый компонент файла настройки отчета подсвечивается во время его выполнения.
При обработке концов откроется веб-браузер MATLAB и отобразит HTML файла.
Когда вы выбираете HTML (from template)
по мере того как тип выхода, таблицы содержимого появляется свернутым в отчете. Разверните или сверните каждый узел, нажав на знак плюс или минус на узле. Нажмите Ctrl + нажатие кнопки, чтобы развернуть или свернуть всю структуру (CMD + нажатие кнопки на платформах Macintosh).