exponenta event banner

Программно определить стили

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

См. также

| | | | | | | | | |

Связанные темы