The problem is not getting the error via Dot Net programming, but the complete layout destruction of the report as a result of the fact that a picture (in our case a thumbnail of a provider) is unavailable. Catching the report error is not an option. It is too complicated and even if we succeed in obtaining the error, it will be very complicated to remove the unavailable url on the fly and re-render the report again. This seems to be a "known issue" for about 8 years! My question: Is it possible to keep the remaining report "intact" if such an error occurs? This shouldn't be too difficult for the development team..
When merging the ReportViewer's WPF theme dictionaries from the DLL in App.xaml, the VS2019 Designer fails due to a problem with a ZoomComboBoxStyle definition.
This causes all Telerik UI for WPF control's styles fail to load in the Visual Studio designer.
WORKAROUND
Instead of App.xaml, merge the ReportViewer's theme dictionary closer to the control.
For example in the ReportViewer's direct parent:
<Grid>Hello Telerik team!
In the attachment, there are two PDFs, generated by the same template (also in attachment): one built under Windows, another one - under Linux (Docker). See red boxes as defects on the screenshot:
Dockerfile fragment:
# MS TrueTypeFonts install
RUN wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb -P ~/Downloads
RUN apt install -y ~/Downloads/ttf-mscorefonts-installer_3.6_all.deb
RUN apt-get install -y libc6-dev
RUN apt-get install -y libgdiplus
RUN apt-get install -y libx11-dev
RUN rm -rf /var/lib/apt/lists/*
Please help us to resolve these issues in Linux.
When you try to send the report through the SendMailMessage functionality but an exception is thrown, the report will disappear. If you click on Refresh and try again with fake data, the exception will be thrown but the report will remain. If you prefer to refresh it automatically, you can use the error event:
var viewer = $("#reportViewer1")
.telerik_ReportViewer({
serviceUrl: "api/reports/",
reportSource: {
report: "Report Catalog.trdp",
},
error: function (e, args) {
console.log("This event handler will be called after a page of the report is ready.");
console.log("The error message is: " + args);
viewer.refreshReport();
},
viewMode: telerikReportViewer.ViewModes.INTERACTIVE,
scaleMode: telerikReportViewer.ScaleModes.SPECIFIC,
scale: 1.0,
enableAccessibility: false,
sendEmail: { enabled: true }
}).data("telerik_ReportViewer");
It would be very helpful for us people that have been using Telerik Reporting in Silverlight (or WPF) applications to have access to a Report Viewer for Windows Store Apps (XAML). The future of Silverlight is unclear at least and there are many Line Of Business Applications currently running under Silverlight and I know of many developers that are looking to port their LOB apps to Windows Store Apps (or Universal Apps). The current HTML5 Report Viewer does not provide printing when it is implemented in browser window in Windows Store Apps so we cannot really offer this option to our customers.
StackTrace of the error:
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
at Telerik.Reporting.Interfaces.LocalizationContext.GetString(String resx, String key)
at Telerik.Reporting.SRDescriptionAttribute.get_Description()
at Telerik.Reporting.Expressions.EnumContextManager.GetItem(Type enumType)
at Telerik.Reporting.Processing.ReportExpressionContext.RegisterAllReportingEnums()
at Telerik.Reporting.Processing.ReportExpressionContext..ctor(Type reportType, AssemblyRefManager assemblyRefManager) at Telerik.Reporting.Processing.ReportParametersManager`1.CreateExpressionContext(Report report, IList`1 runtimeParameters, AssemblyRefManager references)
at Telerik.Reporting.Processing.ReportParametersManager`1..ctor(Report definitionReport, IEnumerable`1 definitionParameters, IDictionary`2 reportSourceParameters, IDataProviderContext dataProviderContext, AssemblyRefManager references)
at Telerik.Reporting.Processing.DocumentParametersManager`1.CreateManager(Report definition, IDataProviderContext dataProviderContext, IParameterValueParser parameterValueParser, IDictionary`2 rsParameters, AssemblyRefManager references) at Telerik.Reporting.Processing.DocumentParametersManager`1.CreateManagers(IProcessingContext context, IParameterValueParser parameterValueParser)
at Telerik.Reporting.Processing.DocumentParametersManager`1..ctor(ResolvedReportDocument resolvedReports, IProcessingContext processingContext, IParameterValueParser parameterValueParser)
at Telerik.Reporting.Processing.ReportProcessor.ProcessReportSource(ReportSource reportSource, IRenderingContext context)
--- End of inner exception stack trace ---
at Telerik.Reporting.Processing.ReportProcessor.ProcessReportSource(ReportSource reportSource, IRenderingContext context)
at Telerik.Reporting.Processing.ReportProcessor.ProcessReportSource(ReportSource reportSource, Hashtable deviceInfo, IRenderingContext context)
at Telerik.Reporting.Processing.ReportProcessor.ProcessAndRender(String format, ReportSource reportSource, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback)
at Telerik.Reporting.Processing.ReportProcessor.ProcessAndRenderStateless(String format, ReportSource reportSource, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback)
at Telerik.Reporting.Processing.ReportProcessor.RenderReport(String format, ReportSource reportSource, Hashtable deviceInfo, CreateStream createStreamCallback, String& documentName)
If a table-based item (Table, List, Crosstab) does not fit in a single page and needs to occupy more than one page, its bottom border is not drawn on the first page and its top border is not drawn on the second (subsequent) page. This behavior is by design and its purpose is to help the users visually distinguish the table as a single item. The table has only one top and bottom border and they are displayed at the beginning and at the end of the table, regardless how many pages the table actually occupies.
Since users might find this confusing, a table should have a property controlling this behavior. The default state of the property will preserve the current rendering. If the user explicitly sets the property, then the table will draw its top and bottom borders on every page it occupies.
As in Ticket with ID 1440072 requested we are looking for a funktionallity to send Reports via E-Mails with the WPF ReportViewer. As only the HTML-5 ReportViewer currently supports the E-Mail sending we would request the feature for WPF as well.
Best Regards,
Martin
When a date is set as a report parameter in the HTML5 viewer, it formats the parameter as a JSON date using a timezone. Where no time is specified this results in a time part added to the date when received at the server. This is a problem, especially for browser in a negative offset zone, e.g. US, where upon the date goes to the previous day. Please add support for parameter types of date, where no time is present and no conversion is done anywhere.