В этом примере показано, как задать набор стилей программно. Стиль является именованным набором форматов. Стили позволяют вам задавать внешний вид элементов отчета путем определения имен стиля вместо того, чтобы задать все отдельные форматы. Используя стили может упростить создание программ отчета. API DOM позволяет вам использовать стили, которые вы задаете в шаблоне отчета. В качестве альтернативы, когда этот пример показывает, можно задать стили в программе отчета. Рассмотрите стили определения в программе отчета, если вы нуждаетесь или предпочитаете создавать программу отчета, которая не требует шаблона.
В этом примере вы генерируете отчет, который содержит таблицу, которая обобщает результаты последовательности тестов. Пример создает тестовые данные. В реальном приложении можно реализовать программу отчета как функцию, которая принимает тестовые данные как одни из ее входных параметров. Вот отчет, сгенерированный этим примером:
Создайте тестовые данные как массив структур.
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";
Импортируйте пакет API DOM так, чтобы вы не использовали полностью определенные имена классов.
import mlreportgen.dom.*;
Чтобы создать документ Word Microsoft®, измените выходной тип от 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