Perspective Report Viewer

8.0.10 RC1

I am unable to get a simple report showing on the Perspective Report Component.
Even a simple report that displays a text parameter does not work in perspective. It works fine using the Vision component.
I get the following if I try executing the report from webdev. Not sure if it is related.

*Edit: If the report is blank or does not contain text, it shows up. As soon as any text is added it fails.

java.desktop/sun.font.SunFontManager.getDefaultPhysicalFont(Unknown Source) at java.desktop/sun.font.SunFontManager.initialiseDeferredFont(Unknown Source) at java.desktop/sun.font.CompositeFont.doDeferredInitialisation(Unknown Source) at java.desktop/sun.font.CompositeFont.getSlotFont(Unknown Source) at java.desktop/sun.font.CompositeGlyphMapper.initMapper(Unknown Source) at java.desktop/sun.font.CompositeGlyphMapper.(Unknown Source) at java.desktop/sun.font.CompositeFont.getMapper(Unknown Source) at java.desktop/sun.font.CompositeFont.canDisplay(Unknown Source) at java.desktop/java.awt.Font.canDisplay(Unknown Source) at com.inductiveautomation.rm.text.RMFontFile.canDisplay(RMFontFile.java:324) at com.inductiveautomation.rm.text.RMFont.canDisplay(RMFont.java:299) at com.inductiveautomation.rm.text.RMXStringUtils.getRepresentableString(RMXStringUtils.java:146) at com.inductiveautomation.rm.text.RMXString.getRepresentableString(RMXString.java:621) at com.inductiveautomation.rm.text.RMTextLayout.layoutText(RMTextLayout.java:131) at com.inductiveautomation.rm.text.RMTextLayout.layout(RMTextLayout.java:116) at com.inductiveautomation.rm.shape.RMTextShape.getTextLayout(RMTextShape.java:785) at com.inductiveautomation.rm.shape.RMTextShape.computePrefHeight(RMTextShape.java:846) at com.inductiveautomation.rm.shape.RMShape.getPrefHeight(RMShape.java:2169) at com.inductiveautomation.rm.shape.RMShape.getPrefHeight(RMShape.java:2159) at com.inductiveautomation.rm.shape.RMTableRowRPG.computePrefHeight(RMTableRowRPG.java:447) at com.inductiveautomation.rm.shape.RMShape.getPrefHeight(RMShape.java:2169) at com.inductiveautomation.rm.shape.RMShape.getBestHeight(RMShape.java:2214) at com.inductiveautomation.rm.shape.RMShape.getBestHeight(RMShape.java:2207) at com.inductiveautomation.rm.shape.RMShape.setBestHeight(RMShape.java:2221) at com.inductiveautomation.rm.shape.RMTableRowRPG.rpgAll(RMTableRowRPG.java:56) at com.inductiveautomation.rm.shape.RMTableRPG.addRows(RMTableRPG.java:262) at com.inductiveautomation.rm.shape.RMTableRPG.rpgTable(RMTableRPG.java:155) at com.inductiveautomation.rm.shape.RMTableRPG.rpgAll(RMTableRPG.java:68) at com.inductiveautomation.rm.shape.RMTable.rpgAll(RMTable.java:497) at com.inductiveautomation.rm.shape.ReportOwner.rpg(ReportOwner.java:180) at com.inductiveautomation.rm.shape.RMParentShape.rpgChildren(RMParentShape.java:574) at com.inductiveautomation.rm.shape.RMPage.rpgChildren(RMPage.java:658) at com.inductiveautomation.rm.shape.RMParentShape.rpgAll(RMParentShape.java:561) at com.inductiveautomation.rm.shape.RMPage.rpgAll(RMPage.java:625) at com.inductiveautomation.rm.shape.ReportOwner.rpg(ReportOwner.java:180) at com.inductiveautomation.rm.shape.RMDocument.rpgChildren(RMDocument.java:1068) at com.inductiveautomation.rm.shape.RMParentShape.rpgAll(RMParentShape.java:561) at com.inductiveautomation.rm.shape.ReportOwner.rpg(ReportOwner.java:180) at com.inductiveautomation.rm.shape.ReportOwner.generateReport(ReportOwner.java:171) at com.inductiveautomation.rm.shape.RMDocument.generateReport(RMDocument.java:1044) at com.inductiveautomation.rm.shape.RMDocument.generateReport(RMDocument.java:1014) at com.inductiveautomation.reporting.gateway.ReportingGatewayHook.executeReport(ReportingGatewayHook.java:289) at com.inductiveautomation.reporting.gateway.scripting.GatewayScriptingFunctions.executeReport(GatewayScriptingFunctions.java:133) at com.inductiveautomation.reporting.common.scripting.ReportScriptingFunctionsPyWrapper.executeReport(ReportScriptingFunctionsPyWrapper.java:62) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) java.lang.ClassCastException: java.lang.ClassCastException: class sun.font.CompositeFont cannot be cast to class sun.font.PhysicalFont (sun.font.CompositeFont and sun.font.PhysicalFont are in module java.desktop of loader 'bootstrap')

Is the gateway running a headless OS? If it’s Debian/Ubuntu, install the fontconfig package.

I’m such a linux noobie. Thank you.
Can’t test it until after hours.

Nah, it’s potentially a bug on our side, but until we investigate that’s the short term fix. Theoretically the JDK shouldn’t need the fontconfig package, but Reportmill does some unusual low-level stuff with fonts.

Installing fontconfig fixed the issue. Thank you.

Hi Team,

I am using Ignition V8.0.10 Perspective and having difficulties viewing the report parameters so that I can bind them to other options.

In the report I have configured few parameters such as Subject. on my report viewer, I added a param named Subject, bound it and it worked.

however, when added other params in the report viewer properties: EndDate, StartDate, Trend Name, Tag Name, etc. it get a component view error.

how can we map perspective report viewer to the parameters configured in the report?

any help will be greatly appreciated.

@melwadeya, probably a mismatch between the names of (or paths to) the parameters between the report and the component. You’ve got one custom parameter working, so you do have a valid example. Can you post a screenshot of the component params and the params in the report?

Hi,

So in the report viewer, when I add the param “Subject”, it works fine. however, when I add the param “Computer Name” it does not accept the name (red overlay on the key name).
however, when I add either of StartDate or EndDate, the entire report viewer disappears in error.

1 Like

Gotcha; thanks for posting the example. Try removing the spaces from any parameter names and see if that clears up the errors.

1 Like

Apparently the report parameters must not have spaces, I changed Computer Name to ComputerName and it is working fine now.

But still cannot figure the error when adding StartDate and EndDate, I get view error as in previously shared screenshot.

Thank you, It works now but not for EndDate and StartDate. I need to add them to the report viewer params so that to bind them to date calendar component in a view.

As soon as I add either of them, I get a view error even before attempting to bind anything

I’m not sure why the date parameters are erroring out. Can you see any errors in either the browser console or the console in the Designer? Also, can you replicate the failure on a new instance of the report viewer component using only the date parameters?

This is strange indeed.
please find screenshots of the designer and browser consoles

is it helping?!
1|690x222

Looking back at your component props, the values for StartDate and EndDate are empty. I would makes sure those are valid Date objects and see if that clears up the error.

As of 8.1.0 RC3 I still have to install the fontconfig package on a headless Ubuntu.