В этом примере показано, как настроить верхние колонтитулы страницы главы, которые сгенерированы генератором отчетов главы API Отчета. Можно настроить верхние колонтитулы страницы главы для PDF и Microsoft® отчеты Word. Пример генерирует отчет для фиктивной компании, ABC Services. Пользовательский заголовок содержит логотип компании, название проекта и отчетную дату.
Логотип компании фиксируется в заголовке. Название проекта и отчетная дата являются динамическими. Они создаются, когда отчет сгенерирован.
Рабочий процесс:
Создайте пользовательский класс генератора отчетов главы.
Измените заголовки в PDF или шаблоне главы Word.
Добавьте свойства в пользовательский класс генератора отчетов для динамического контента в пользовательских заголовках.
Напишите программу отчета, которая использует пользовательский генератор отчетов и задает значения для свойств.
Создайте скелетный класс генератора отчетов главы путем вызова mlreportgen.report.Chapter.customizeReporter
метод. Назовите класс Chapter
и сохраните его в папке класса в папке пакета.
mlreportgen.report.Chapter.customizeReporter('+abc/@Chapter');
Этот вызов метода также копирует шаблон главы для каждого типа отчета к +abc/@Chapter/resources/templates
папка.
Чтобы изменить определения заголовка в главе обрабатывают по шаблону для отчета PDF:
Разархивируйте файл шаблона.
Отредактируйте определения заголовка в docpart_templates.html
файл с помощью текстового редактора.
Группируйте извлеченные файлы в файл шаблона.
Измените текущую папку в папку, которая содержит файл шаблона PDF, default.pdftx
и затем разархивируйте файл.
cd('+abc/@Chapter/resources/templates/pdf'); unzipTemplate('default.pdftx');
Извлеченные файлы находятся в папке под названием default
.
Скопируйте файл изображения для логотипа компании к default/images
папка. Используйте файл изображения, abc_logo.png
, присоединенный к этому примеру или вашему собственному файлу изображения.
В редакторе MATLAB® или текстовом редакторе, откройте docpart_templates.html
, который находится в папке под названием default
.
Сделать заголовки тем же самым на всех страницах, в Section1 dptemplate
элемент, удалите SectionFirstPageHeader
и SectionEvenPageHeader
из списка заголовка и шаблонов нижнего колонтитула.
SectionDefaultPageHeader
теперь шаблон для всех верхних колонтитулов страницы главы. Найдите SectionDefaultPageHeader
шаблон.
<dptemplate name = "SectionDefaultPageHeader"> <p class="SectionTitleHeader"><StyleRef style-name="SectionTitle1"/></p> <hr/> </dptemplate>
Замените его на эту разметку:
<dptemplate name = "SectionDefaultPageHeader"> <table width="100%"> <tr style="border-bottom: 1pt solid #ccc;"> <td style="text-align:left; padding-bottom:2pt" valign="bottom"><img src="images/abc_logo.png"></img></td> <td style="text-align:center; padding-bottom:2pt; font-family:arial; font-size: 10pt; font-weight: bold" valign="bottom"><hole id="Project">PROJECT</hole></td> <td style="text-align:right; padding-bottom:2pt; font-family:arial; font-size: 10pt" valign="bottom"><hole id="Date">DATE</hole></td> </tr> </table> </dptemplate>
Разметка задает одну строку, таблицу с тремя столбцами с этими характеристиками:
Ячейки таблицы содержат логотип компании, отверстие для названия проекта и отверстие для отчетной даты.
Содержимое первых, вторых, и третьих ячеек выравнивается по левому краю, выравнивается центром и выровненное по правому краю, соответственно.
Дополнение между нижней частью ячейки и содержимым ячейки составляет 2 ПБ.
Содержимое ячейки выравнивается с нижней частью ячейки.
Шрифтом для текста во второй ячейке является Arial, 10 ПБ, и полужирный. Шрифтом для текста в третьей ячейке является Arial и 10 ПБ.
Нижняя граница строки отображается. Таблица не имеет границ, потому что HTML не задает border
свойство.
Если вы отредактировали docpart_templates.html
в редакторе MATLAB закройте файл, прежде чем вы группируете файлы.
Убедитесь, что вы находитесь в +abc/@Chapter/resources/templates/pdf
папка, которая содержит папку под названием default
. Группируйте файлы в default
назад в исходный файл шаблона PDF.
zipTemplate('default.pdftx','default');
В Word шаблон Section1 используется в главах и разделах верхнего уровня. Шаблон находится в галерее Quick Parts.
Изменить заголовки в шаблоне Section1:
Откройте файл шаблона в Word.
Создайте временную копию шаблона Section1 в теле документа шаблона.
Задайте, имеют ли все страницы тот же заголовок.
Отредактируйте заголовки.
Сохраните модифицированный шаблон Section1 в галерею Quick Parts.
Удалите содержимое из тела документа шаблона и сохраните файл шаблона.
Перейдите к +abc/@Chapter/resources/templates/docx
.
Откройте файл шаблона при помощи одного из этих методов:
В MATLAB, в панели Текущей папки, щелкают правой кнопкой по docpart_templates.dotx
и нажмите Open Outside MATLAB.
За пределами MATLAB щелкните правой кнопкой по docpart_templates.dotx
и нажмите Open.
Документ шаблона открывается к пустой странице.
Чтобы сделать символы абзаца и символы форматирования видимыми, на вкладке Home, кликают по кнопке Show/Hide.
На вкладке Insert, в текстовой группе, нажимают Quick Parts, и затем кликают по базовому блоку Section1.
В документе шаблона Word вставляет копию шаблона Section1 и фиктивного раздела Section2. Фиктивный раздел проигнорирован, когда вы генерируете отчет.
Курсор находится в фиктивном Section2. Прокрутите до шаблона Section1. Чтобы открыть заголовок, дважды кликните его.
Под Инструментами Заголовка и Нижнего колонтитула, на вкладке Design, снимают флажок Different First Page.
Заголовок для страниц, которые следуют за первой страницей, копируется в первый верхний колонтитул страницы.
На вкладке Insert Нажмите Table. Переместите указатель через сетку, пока вы не подсветите три столбца и одну строку.
Удалите сообщение Error! No text of specified style in document
и абзац, который содержит его.
Горизонтальное правило от исходного заголовка является нижней границей абзаца. Чтобы сделать его невидимым, кликните по абзацу и затем, на вкладке Home, в группе Абзаца, кликните по стрелке вправо Границ и затем нажмите No Border.
Скопируйте и вставьте логотип компании в первую ячейку таблицы. Используйте присоединенный abc_logo.png
файл или ваш собственный файл изображения.
Если лента Разработчика не доступна, нажмите File> Options, и затем нажмите Customize Ribbon. Под Настраивают Ленту, выбирают Developer.
На вкладке Developer нажмите Design Mode так, чтобы вы видели метки отверстия с тегом заголовка, когда вы создаете отверстие.
Во второй ячейке добавьте несколько пробелов перед меткой записи так, чтобы отверстие, которое вы добавляете, было встроенным отверстием.
Щелкните перед пробелами.
Кликните по Кнопке управления Содержимого Обогащенного текста. Содержимое обогащенного текста управляет отображениями.
Удалите пробелы, которые вы добавили.
Замените текст в управлении с текстом, который идентифицирует отверстие, например, Project Name
.
На вкладке Developer нажмите Properties.
В диалоговом окне Content Control Properties:
в поле Title введите Project
.
В Поле метки введите Hole
.
Выберите Use стиль, чтобы отформатировать текст, введенный в пустой флажок управления. Затем нажмите New Style.
В диалоговом окне Create New Style from Formatting введите Project
в Поле имени. Для форматирования задайте Arial, 10 ПБ. Нажмите кнопку Bold. Нажать ОК.
В диалоговом окне Content Control Properties нажать ОК.
Добавьте встроенное отверстие для даты в третьей ячейке. Используйте шаги, что вы раньше добавляли отверстие во вторую ячейку.
Добавьте несколько пробелов перед меткой записи.
Щелкните перед пробелами.
Кликните по Кнопке управления Содержимого Обогащенного текста.
Удалите пробелы, которые вы добавили.
Замените текст в управлении с текстом, который идентифицирует отверстие, например, Отчетную дату.
На вкладке Developer нажмите Properties. В диалоговом окне Content Control Properties введите Date
в поле Title и Hole
в Поле метки.
Выберите Use стиль, чтобы отформатировать текст, введенный в пустой флажок управления. Затем нажмите New Style.
В диалоговом окне Create New Style from Formatting введите ReportDate в Поле имени. Для форматирования задайте Arial and10pt.
Таблица похожа:
Задавать нижнее поле ячейки:
Выберите и щелкните правой кнопкой по таблице.
Нажмите Table Properties, затем на вкладке Table, нажмите Options.
В Табличном Окне параметров, под полями ячейки Default, в поле Bottom, вводят 2 ПБ.
Выравнивание по левому краю логотип в первой ячейке. Сосредоточьте отверстие в третьей ячейке. Выравнивание по правому краю отверстие в третьей ячейке.
Выровнять содержимое ячейки:
Выберите изображение или отверстие в таблице.
На вкладке Home, в группе Абзаца, нажимают Align Left, Center или кнопку Align Right.
Отобразить только нижнюю границу таблицы:
Выберите таблицу.
Под Табличными Инструментами, на вкладке Design, нажимают Borders> No Border.
Нажмите Borders> Bottom Border.
Установите вес линии на 1 ПБ.
Закройте заголовок путем двойного клика по странице за пределами заголовка.
Чтобы выбрать все содержимое в шаблоне, нажмите Ctrl+A.
На вкладке Insert нажмите Quick Parts, и затем нажмите Save Selection to Quick Parts Gallery.
В диалоговом окне Create New Building Block, в Поле имени, вводят Section1. Устройте Галерею на Quick Parts
, Категория к mlreportgen
, и Сохраните в принять значение по умолчанию. Нажать ОК.
Когда вы видите сообщение Do you want to redefine the building block entry?
, нажать кнопку Да.
Это - лучшая практика удалить содержимое из тела документа шаблона, прежде чем вы сохраните файл шаблона.
С выбранным содержимым нажмите Delete.
Чтобы скрыть символы форматирования, на вкладке Home, в группе Абзаца, кликают по нажатию кнопки кнопка Show/Hide.
Сохраните файл шаблона.
Поскольку пользовательский заголовок имеет отверстия для динамического контента, необходимо задать свойства для отверстий.
Перейдите к +abc/@Chapter
папка.
В файле определения класса, Chapter.m
, добавьте свойства, которые соответствуют Project
и Date
отверстия в заголовке. Замените пустой properties
разделите с:
properties Project = '' Date = '' end
Сохраните файл класса.
Когда вы генерируете отчет, создаете генератор отчетов главы из abc.Chapter
класс. Присвойте значения свойствам, которые соответствуют отверстиям в заголовке.
Прежде, чем запустить следующий код, перейдите к папке, которая содержит +abc
папка. В качестве альтернативы, чтобы добавить папку, которая содержит +abc
папка к пути MATLAB:
В Панели инструментов MATLAB, на вкладке Home, в группе Среды, нажимают Set Path.
В диалоговом окне Set Path нажмите Add Folder.
В Добавить Папке к диалоговому окну Path кликните по папке и затем нажмите Select Folder.
Вы не можете добавить пакеты в путь MATLAB. Добавьте папку, которая содержит папку пакета.
import mlreportgen.dom.* import mlreportgen.report.* report = Report("Consulting Report","pdf"); chapter = abc.Chapter(); chapter.Project = "Control Systems Consulting"; chapter.Date = date; chapter.Title="Overview"; add(chapter,"Chapter content goes here."); add(report,chapter); close(report); rptview(report);
import mlreportgen.dom.* import mlreportgen.report.* report = Report("Consulting Report","docx"); chapter = abc.Chapter(); chapter.Project = "Control Systems Consulting"; chapter.Date = date; chapter.Title="Overview"; add(chapter,"Chapter content goes here."); add(report,chapter); close(report); rptview(report);
mlreportgen.report.Chapter
| unzipTemplate
| zipTemplate