В этом примере показано, как задать набор стилей программно. Стиль является именованным набором форматов. Стили позволяют вам определять внешний вид элементов отчета путем определения имен стилей вместо определения всех отдельных форматов. Использование стилей может упростить создание программ отчетов. DOM API позволяет использовать стили, заданные в шаблоне отчета. Кроме того, как показано в этом примере, стили можно задать в программе отчетов. Рассмотрите определение стилей в программе отчетов, если вам нужно или вы предпочитаете создавать программу отчетов, которая не требует шаблона.
В этом примере вы генерируете отчет, содержащий таблицу, в которой результирующие результаты последовательности тестов. Пример создает тестовые данные. В реальном приложении можно реализовать программу отчетов как функцию, которая принимает тестовые данные как один из ее входов. Вот отчет, сгенерированный этим примером:
Создайте тестовые данные как массив структур.
test(1).Name = "100% Success"; test(1).Description = "Percent of total loss(failing hits) must be==0%"; test(1).Status = "Fail"; test(1).StatusDetail = "Loss=22.33%"; test(2).Name = "No Fail"; test(2).Description = "Fail Count must be ==0"; test(2).Status = "Fail"; test(2).StatusDetail = "Fail Count=69"; test(3).Name = "Fast Hit Rate"; test(3).Description = "Final Throughput must be>=10Hits per second"; test(3).Status = "Pass"; test(3).StatusDetail = "Hits per Second=27.978"; test(4).Name = "Low Execution Time"; test(4).Status = "Pass"; test(4).Description = "Avg. Exe Time(ms) must be <750.0"; test(4).StatusDetail = "Avg Exe Time(ms)=244.33";
Импортируйте пакет DOM API так, чтобы не использовать полные имена классов.
import mlreportgen.dom.*;
Чтобы создать документ Microsoft ® Word, измените тип выхода с pdf
на docx
. Чтобы создать HTML, измените pdf
на html
или html-file
.
d = Document("report","pdf");
Создайте объект карты MATLAB, который будет служить таблицей стилей, то есть объектом, который сопоставляет имена стилей с набором форматов, содержащихся в стилях.
styles = containers.Map;
Этот пример использует стиль для стиля заголовка сечения верхнего уровня и стиль для заголовка подсечения. Во-первых, создайте стиль, который определяет внешний вид, общий для обоих заголовков.
styles("baseHeadingPara") = {Color("darkblue"),FontFamily("Arial")};
Задайте стиль для абзаца, который служит заголовком раздела отчета верхнего уровня. Этот стиль задает уровень контура 1, так что заголовок появляется как запись верхнего уровня в таблицу содержимого отчета.
styles("heading1Para") = [styles("baseHeadingPara"),{OutlineLevel(1),Bold,... FontSize("16pt")}];
Задайте заголовок второго уровня.
styles("heading2Para") = [styles("baseHeadingPara"),{OutlineLevel(2),... OuterMargin("0in","0in","12pt","5pt"),Italic,FontSize("14pt")}];
Определите стили для таблицы, заголовка таблицы и записей таблицы.
styles("testSummaryTable") = {Border("solid"),RowSep("solid"),ColSep("solid"),Width("7in")}; styles("testSummaryTableHeader") = {Bold}; styles("testSummaryTableEntry") = {InnerMargin("10pt")};
Определите стили для тестового статуса.
styles("passText") = {Color("green")}; styles("failText") = {Color("red")};
Создайте заголовок отчета.
heading1Para = Paragraph("Load Test Information"); heading1Para.Style = styles("heading1Para"); append(d,heading1Para);
Создайте заголовок описания сводной таблицы тестов.
heading2Para = Paragraph("Quality of Service Report Summary"); heading2Para.Style = styles("heading2Para"); append(d,heading2Para);
Создайте тестовое содержимое заголовка сводной таблицы. Задайте метки для отображения в заголовке таблицы.
testSummaryTableHeader = ["Name","Description","Status","Status Detail"];
Создайте массив ячеек, чтобы хранить содержимое сводной таблицы тестов. Массив ячеек используется позже для создания таблицы.
nTests = numel(test); testSummaryTableBody = cell(nTests,4);
Сохраните каждый элемент тестовых данных в камере массива ячеек.
for t = 1:nTests testSummaryTableBody{t,1} = test(t).Name; testSummaryTableBody{t,2} = test(t).Description; result = test(t).Status; status = Paragraph(result); if result == "Pass" status.Style = styles("passText"); else status.Style = styles("failText"); end testSummaryTableBody{t,3} = status; testSummaryTableBody{t,4} = test(t).StatusDetail; end
Составьте сводную таблицу тестов.
testSummaryTable = FormalTable(testSummaryTableHeader,testSummaryTableBody); testSummaryTable.Style = styles("testSummaryTable"); testSummaryTable.Header.Style = styles("testSummaryTableHeader"); testSummaryTable.TableEntriesStyle = styles("testSummaryTableEntry");
Добавьте сводную таблицу тестов к документу.
append(d,testSummaryTable);
close(d); rptview(d);
mlreportgen.dom.Border
| mlreportgen.dom.Color
| mlreportgen.dom.Document
| mlreportgen.dom.FontFamily
| mlreportgen.dom.FontSize
| mlreportgen.dom.FormalTable
| mlreportgen.dom.InnerMargin
| mlreportgen.dom.OuterMargin
| mlreportgen.dom.OutlineLevel
| mlreportgen.dom.Paragraph
| mlreportgen.dom.RowSep