Задайте стили программно

В этом примере показано, как задать набор стилей программно. Стиль является именованным набором форматов. Стили позволяют вам определять внешний вид элементов отчета путем определения имен стилей вместо определения всех отдельных форматов. Использование стилей может упростить создание программ отчетов. 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

Импортируйте пакет 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);

См. также

| | | | | | | | | |

Похожие темы