필터 지우기
필터 지우기

In a report, how can you find out the height of table in pixels ?

조회 수: 2 (최근 30일)
Blue
Blue 2023년 4월 24일
답변: Piyush Dubey 2023년 5월 30일
I am printing multiple tables in a report but I dont know how long each table will be (and some tables are multiple pages long) and I dont want to start a new table at the bottom of a page if there is only a few rows left. I am aware that the PageBreak option exist but I also dont want to waste a whole page just if there is just one or two rows at the top of the page. Given that a page has always the same height, I figured that if I could find out how high my tables are (in pixels I suppose) then I could automatically place them as I want. In a report, how can you find out the height of table in pixels ?
  댓글 수: 2
Kevin Holly
Kevin Holly 2023년 4월 24일
Is this a Live Editor export report or a report generated by ther report generator?
Blue
Blue 2023년 4월 24일
Im using the report generator. For example, if we tweak the example here (https://www.mathworks.com/help/rptgen/ug/define-styles-programmatically.html) I wouldnt want another table starting right under this one in the report as there is not enough room at the bottom of the page but I also dont want to use pagebreak automatically if there is only a couple of lines at the top of the page
% Import base classes for the report
import mlreportgen.report.*
import mlreportgen.dom.*
% Data
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";
test(5).Name = "100% Success";
test(5).Description = "Percent of total loss(failing hits) must be==0%";
test(5).Status = "Fail";
test(5).StatusDetail = "Loss=22.33%";
test(6).Name = "No Fail";
test(6).Description = "Fail Count must be ==0";
test(6).Status = "Fail";
test(6).StatusDetail = "Fail Count=69";
test(7).Name = "Fast Hit Rate";
test(7).Description = "Final Throughput must be>=10Hits per second";
test(7).Status = "Pass";
test(7).StatusDetail = "Hits per Second=27.978";
test(8).Name = "Low Execution Time";
test(8).Status = "Pass";
test(8).Description = "Avg. Exe Time(ms) must be <750.0";
test(8).StatusDetail = "Avg Exe Time(ms)=244.33";
d = Document("report","pdf");
% Styles
styles = containers.Map;
styles("baseHeadingPara") = {Color("darkblue"),FontFamily("Arial")};
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
% Create the test summary table
testSummaryTable = FormalTable(testSummaryTableHeader,testSummaryTableBody);
testSummaryTable.Style = styles("testSummaryTable");
testSummaryTable.Header.Style = styles("testSummaryTableHeader");
testSummaryTable.TableEntriesStyle = styles("testSummaryTableEntry");
append(d,testSummaryTable);
close(d);
rptview(d);

댓글을 달려면 로그인하십시오.

답변 (1개)

Piyush Dubey
Piyush Dubey 2023년 5월 30일
Hi Blue,
Mlreport.dom package has a class named RowHeight, this can be used to set and modify the height of each row in the table. Multiplying the default row height (1in) to the number of rows will give you the height of the total report.
Refer to this documentation for more information:
Hope this helps.

카테고리

Help CenterFile Exchange에서 MATLAB Report Generator Task Examples에 대해 자세히 알아보기

태그

제품


릴리스

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by