In Development
Last Updated: 27 Oct 2021 07:15 by ADMIN

Ways to reproduce the problem:


1. Create simple one table one column report, with right horizontal text alignment in the column.

2. Set a data source with multiple rows, with different lengths for the string, displayed in the table's column.

3. Render the report under Windows and under Linux - the column text on different rows will not be aligned properly on linux, but will be shifted to the left or right depending on string's contents and length.

I've done a bit reserch on PDF rendering, concerning libgdiplus "MeasureString" method deficiencies, and here's what I discovered so far:

1. The source of the problem is the fact that libgdiplus ends up using cairo to measure string glyphs, and it does it's font metric in whole pixels (integer), using the DPI of the context it is called in. In short, if the context is using 96DPI, cairo will use these 96DPI to calculate (and round) the font metrics, and to write strings eventually.

2. When libgdiplus is compiled to use pango, the problem is much smaller (several millimeter differences become part of the millimeter), because internally pango scales the measurement 1024 times, but it appears that this is not enough to resolve the problem.

3. When using libgdiplus (with or without pango inbetween it and cairo) for both "DrawString" and "MeasureString", everything is perfect, but the fundamental problem in Relerik Reporting to PDF is that it renders in a vector format, but uses text metering for pixel format - it uses System.Graphics.MeasureString which is a DPI vased metering (on Linux at least) but uses proprietary "PdfRenderer.DrawString" of the "PdfRendered" class, not the native Graphics.DrawString. Since cairo rounds every character glyph metrics to an integer value, the longer the string is, the larger the discrepancy will be between string rendering when PDF is viewed (based on floats/doubles) and Graphics.MeasureString (based on integers, at least on Linux).

Ways to resolve the issue:

1. The best way to resolve the issue is not to call Graphics.MeasureString at all, when rendering to vector based format, because it measures string based on the DPI on graphics context it is in. In other words, proprietary "PdfRenderer.MeasureString" must be  implemented, which works with font glyphs directly, entirely using single or double precision math to calculate glyph dimensions and string dimensions.

2. Another, not so perfect, but HUGELY EASIER way is to set DPI of the rendering context of the PDF to a higher value, here's how:

For the moment, PdfContext's constructor looks like this
public PdfContext(string ownerPassword, string userPassword)
{
            this.dataFormatter = string.IsNullOrWhiteSpace(ownerPassword) ?
                                    new DataFormatter() :
                                    new DataFormatterEncypted(ownerPassword, userPassword);

            this.bmp = new Bitmap(1, 1);
            this.graphics = Graphics.FromImage(this.bmp);
            this.hdc = this.graphics.GetHdc();
            this.pdfFontCache = new PdfFontCache();
 }
This creates a Graphics object, based on a Bitmap with default system's DPI, which is usually 96DPI, or somethiong around this. So, all rendering metrics are callulated for 96DPI, so there will ALWAYS be a discrepancy between PDF's real rendering (when viewed with a reader), and Telerik reporting engine's calculations.

So, a simple way to get around this is to use higer DPI Graphics object, like this:

public PdfContext(string ownerPassword, string userPassword)
{
    this.dataFormatter = string.IsNullOrWhiteSpace(ownerPassword) ?
                            new DataFormatter() :
                            new DataFormatterEncypted(ownerPassword, userPassword);

    this.bmp = new Bitmap(1, 1);
    bmp.SetResolution(9600, 9600); //ADDED
    this.graphics = Graphics.FromImage(this.bmp);
    this.hdc = this.graphics.GetHdc();
    this.pdfFontCache = new PdfFontCache();
}
This makes the discrepancy 100 times lower, and in most cases practically invisible.

3. Another, more or less simple way to get around this, is to multiply font size and layout metrics by some number (I personally tried 16, 32, 128 and 256) before calling Graphics.MeasureString(), and dividing the result of the call by the same number after calling it. From my experience, 16 makes things MUCH better, and 128 is maybe enough to resolve 99.99% of the cases.

Attached is the result when rendered without multiplication (Linux-Orig.png) and when font size and layout methrics are multiplied by 128 before calling "MeasureString", and dividing the result by 128 afterwards (Linux-MultipliedBy128.png). On Windows the result looks exactly like the the corrected rendering on the "Linux-MultipliedBy128.png.
Unplanned
Last Updated: 21 Oct 2021 14:14 by ADMIN

Our manufacturing floor needs to have unprintable characters encoded in the data matrix in our reports, so that our plant controllers can receive instructions.  The characters I'm speaking about are things like the Record Separator (ASCII 1E), Group Separator (ASCII 1D), and End of Transmission (ASCII 4).  

 

In Development
Last Updated: 20 Oct 2021 09:46 by ADMIN
Created by: Shannon
Comments: 0
Type: Bug Report
1

Pasting a HEX value to  a report item whose color has not been set before leads to the error:

"An error has occurred. NaN is not a valid value for Int32."

The workaround is to set the color of that property through the ColorPicker control before attempting to paste the new HEX color. If a color has been selected before, the issue is not present.

Under Review
Last Updated: 19 Oct 2021 12:43 by ADMIN
Unable to get report parameters.
An error has occurred.
Type: Telerik.Reporting.ReportSerialization.Current.ReportSerializable`1[Telerik.Reporting.Report]
Unplanned
Last Updated: 18 Oct 2021 13:38 by ADMIN
The base Implementation of ReportDesignerControllerBase.RenderPictureBoxAsync does not consider the configured IDefinitionStorage and respectively its IDefinitionStorage.BaseDir property.
Unplanned
Last Updated: 14 Oct 2021 21:14 by ADMIN

You can have the three styles in HtmlTextBox. For example:

<strong>bold</strong>, <em>italics</em> , <span style="text-decoration: underline">underling</span>

However, if you use expression, for example:

= IIF( Parameters.Parameter1.Value , "<strong>bold</strong>, <em>italics</em> , <span style="text-decoration: underline">underling</span>","some bold text ")

Then the expression cannot be evaluated and an error is thrown.

 

Unplanned
Last Updated: 13 Oct 2021 13:41 by ADMIN
The config.Routes.MapHttpRoute("ApiDefault", firstPathSegment + "/{controller}/{action}"); defined in ReportsControllerConfiguration.RegisterRoutes hides other matching route patterns registered after it - for example  api/{controller}/{id} will not be matched, because it has the same route pattern.
Unplanned
Last Updated: 11 Oct 2021 09:22 by ADMIN

I have a Windows Forms application that references a Reports_Library.dll that contains my CLR reports.  I want to use the ReportBook in VS, so I followed all of the online tutorials.  However, I'm having an issue using the ReportBook.  

My Steps:

  1. Create a new form
  2. Add a Report Viewer to the form (I don't add any report source to the viewer at this time)
  3. I add a ReportBook to the form and a dialog box appears with the title of "Report Sources..."  I click on "New" and then I click on "Type name".  From there I click the drop-down under "Select a Report Type" and there are no options...  Usually, when following this procedure with a ReportViewer, there is an option that says <Select Report Document>.  I click on that and then choose my document from the Reports Library.  However, I don't have the option to do that because the drop-down is blank.
Unplanned
Last Updated: 05 Oct 2021 13:00 by ADMIN

DataPointStyle's initial color is displayed as Black but the color is actually Transparent and if I try to set borders between the data points on my graph, they cannot be seen. 

Reselecting a color fixes the issue.

Unplanned
Last Updated: 05 Oct 2021 07:13 by ADMIN
As soon as we enable Accessibility, the parameter area will not be displayed anymore. You can reproduce the issue with the Demo Project when using a Custom Parameter Editor.
Unplanned
Last Updated: 30 Sep 2021 12:01 by ADMIN

Exporting a report as PDF produces a corrupted file as soon as it reaches 2GB or more in file size. Available client memory should have been enough and was not at its limit. We have built the application as x64.

We use large-sized image files in the reports.

In Development
Last Updated: 29 Sep 2021 14:30 by ADMIN
Scheduled for R3 2021 SP1

Hello, 

I am using the Blazor Web Report Designer on a page that is not the default route, i.e. "/". When I am at step 2 in the WebServiceDataSource wizard to add parameters, if I click the Add Parameter button it routes to the home page. 

I believe this is caused by the href="#' empty route. Below is an animation of what I mean. This is also reproduced in the BlazorIntegrationDemo in the installation directory.

 

ea14844d-c61e-4dd7-a8c4-151c472ba700_add-parameter-click-issue.gif (1920×866)

In Development
Last Updated: 29 Sep 2021 12:24 by ADMIN
Scheduled for R3 2021 SP1
When using a report parameter of type Float, and there is no value for decimal places, or it is 0, it appears as if the parameter value passed to the runtime is converted to an integer value, and an "Invalid value for parameter <paramName>" is logged. 
Declined
Last Updated: 27 Sep 2021 15:50 by ADMIN
If there is an error when connecting to the database there will be no data returned and instead of displaying an informative error message, the report will be displayed as 'No page to display' by the designer/viewer, or exported as a corrupted document by the ReportProcessor.
The error will be displayed when SkipBlankPages is False.
In Development
Last Updated: 27 Sep 2021 15:48 by ADMIN
Scheduled for R3 2021 SP1

The default value of the report property SkipBlankPages is True and when there is an error in the report, for example, due to a problem with the connection to the database, the error message may be hidden as the report is not rendered at all.

The report should be rendered in order to display the error message also when SkipBlankPages is True.

In Development
Last Updated: 27 Sep 2021 09:52 by ADMIN

Not sure if you are aware of this but the new property SkipBlankPages in 2021/R1 will result in a corrupt (unopenable) PDF/XLS if the report contains no data.

The output used to be a blank report.

This behaviour is fixed by setting the Value to 'False' but this now requires the developer to remember to set this value on each new report. Perhaps the default should have stayed as 'False' and those who wish to remove blank pages could set it to true.

We are aware the property is set to true by default.

We have now had to modify (and subsequently retest) > 100 reports.

The generator should probably not create a 'corrupt' file in these cases.

Kind regards

Unplanned
Last Updated: 21 Sep 2021 10:38 by ADMIN

Hello,

we changed our reporting service to .NET Core and now the Backgroundcolor for some alternating lines are not visible in HTML5 viewer.

In exported PDF they are...

I change the backgroundcolor from custom like <Style BackgroundColor="240, 240, 240" /> to <Style BackgroundColor="Control" /> which is working fine.

But i can see difference in color of HTML5 report and pdf report.

What can i do to have it working like before, i mean i want to use it like this again <Style BackgroundColor="240, 240, 240" /> if possible.



PS:We are running our service on a Linux Docker-container



Best regards

Thomas

 

Declined
Last Updated: 20 Sep 2021 13:27 by ADMIN

The Margins property cannot be set in the Blazor wrapper of the Web Report Designer:

 

Unplanned
Last Updated: 20 Sep 2021 12:38 by ADMIN
Created by: Shannon
Comments: 3
Type: Bug Report
3

I like the new open dialog for the Web Report Designer, but now my report names are all truncated and I can't tell what anything is.  Can you please off a list view in the Open Dialog so all my names aren't "Company R..."

 

Unplanned
Last Updated: 16 Sep 2021 11:44 by ADMIN
Any time I double-click in the HTML text box in the attached report and then click the text to start editing it, I get this error:

---------------------------
Telerik Report Designer
---------------------------
Unable to cast COM object of type 'System.__ComObject' to interface type 'mshtml.IHTMLTxtRange'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{3050F220-98B5-11CF-BB82-00AA00BDCE0B}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
---------------------------
OK   
1 2 3 4 5 6