I put a ReportViewer in an application and VisualStudio inserted the required MergedDictionaries. I updated them to the Green theme and added the Green reference, now I get a XAML error stating Cannot find resource named 'RepeatButtonStyle.' I comment out this line in my App.xaml file:
<!--<ResourceDictionary Source="/Telerik.ReportViewer.Wpf.Themes;component/Themes/Green/Telerik.Windows.Controls.Navigation.xaml" />-->the error goes away and my XAML designer works again, but the navigation section of the report viewer has the incorrect theme applied.
I looked in the copy of the file that is on my computer located at:
C:\Program Files (x86)\Progress\Telerik Reporting R2 2019\Wpf\Themes\Green\Telerik.Windows.Controls.Navigation.xaml
On line 8831 there is a reference to a Static Resource named RepeatButtonStyle.
<Style x:Key="TabbedWindowScrollButtonStyle" TargetType="RepeatButton" BasedOn="{StaticResource RepeatButtonStyle}">I assume this the culprit?
There was a similar issue in February.
Go to page https://demos.telerik.com/reporting/product-catalog?&skinName=default
Open Search dialog.
Type "Accessories" in search field. Wait for results.
Pick last result (Accessories - page 2) from results list. (page 2 will be opened - correct)
Close search dialog and open it again (or just clear search field).
Type "Accessories" in search field again. Wait for results.
Pick last result (Accessories - page 2) from results list again.
Incorrect behavior: page 1 will be opened instead of page 2; and first result item will be highlighted as selected instead of last result item.
Also I met situation when long results list was scrolled up to top but it was unclear how to reproduce it stable.
When dynamically create a new tab which contains a report viewer, only the first report is rendered correctly. The subsequent tabs with report viewers are empty.
As a developer integrating a Web-based report viewer into my apllication / Report Server implementer,
Using the following code for updating the ReportSource of the viewer:
ngOnInit() {
this.setParameters();
}
setParameters(): void {
this.reportViewer.setReportSource({
report: 'SampleReport.trdp',
parameters: {}
});
}
comes up with the error
Argument of type '{ report: string; }' is not assignable to parameter of type 'JSON'.
Type '{ report: string; }' is missing the following properties from type 'JSON': parse, stringify, [Symbol.toStringTag]
Currently, the workaround is to cast the reportSource object as follows:
ngAfterViewInit() {After R1 2019 Telerik Web Report Viewers use Kendo splitter for resizing Parameters and Document map areas. At this point, there is no way to change the Parameters Areas position.
The expression parser throws an exception when parsing an expression that calls .ToString() method after closing parenthesis like the one below:
=(Fields.Value1+Fields.Value2).ToString()
If the two operands in parentheses are converted to double, the expression is parsed and evaluated correctly:
=CDbl(Fields.Value1+Fields.Value2).ToString()
In my report, I use font SimSun to display Chinese, when preview it's OK, but after click print, an exception is thrown.
Internal Server Error
Font data for font "SimSun" cannot be obtained. Possible reasons are: The font is not installed in . The font is not found in the directories specified by the "FontLocations" configuration entries. The font is not declared in "" configuration section
In my docker image, run command -list, is there.
C:\Users\Anders> docker exec -it 3485 bash root@3485bbdabbb3:/app# fc-list /usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book /usr/share/fonts/simsun.ttf: SimSun,宋体:style=Regular /usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold /usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold /usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
FROM /2.2- AS builder
WORKDIR /app
# caches restore result by copying file separately
COPY * config/
RUN restore
COPY .
RUN publish --output /app/ --configuration Release
RUN -n 's:.*<AssemblyName>\(.*\)</AssemblyName>.*:\1:p' * > __assemblyname
RUN if [ - __assemblyname; then filename=$ *); echo $filename%*} > __assemblyname;
# Stage 2
FROM /2.2--runtime
ENV PORT 80
EXPOSE 80
COPY simsun.ttf /usr/share/fonts/simsun.ttf
RUN apt-get update \
&& apt-get install -y \
libc6-dev \
\
libx11-dev \
\
&& rm -rf /var/lib/apt/lists/*
RUN fc-cache -f -v
WORKDIR /app
COPY --from=builder /app
ENTRYPOINT $cat /app/__assemblyname)In CSharp.ReportExamples.VS2017, I copy all reports into project CSharpAspNetCoreDemo, and make them always copy.
Then I change ReportsController to the Reports directory above.
When Run it in IIS, it's OK, but when check into Docker, there is an exception thrown.
{
"message": "An error has occurred.",
"exceptionMessage": "Type: Telerik.Reporting.XmlSerialization.Current.ReportSerializable`1[Telerik.Reporting.Report]",
"exceptionType": "System.MissingMethodException",
"stackTrace": " at Telerik.Reporting.Xml.ObjectXmlReader.CreateInstance(Type type, String name)\n at Telerik.Reporting.Xml.ObjectXmlReader.ReadObject(Type type)\n at Telerik.Reporting.Xml.ObjectXmlReader.ReadXmlElement(String name)\n at Telerik.Reporting.Xml.XmlSerializer.Deserialize(Stream stream, IResourceHandler resourceHandler)\n at Telerik.Reporting.XmlSerialization.ReportXmlSerializer.Telerik.Reporting.XmlSerialization.IXmlSerializer.Deserialize(Stream stream, IResourceHandler resourceHandler)\n at Telerik.Reporting.ReportPackager.UnpackageDocument(Stream packageStream)\n at Telerik.Reporting.Processing.UriReportDocumentResolver.Resolve(IProcessingContext context, UriReportSource rs)\n at Telerik.Reporting.Processing.ReportDocumentResolver.Bind[T](IProcessingContext context, ReportSource source, Func`2 func)\n at Telerik.Reporting.Processing.ResolvedReportDocument.ResolveReportsRecursively(ReportSource rs, IProcessingContext context, IDictionary`2 parentRsParameters, Boolean parentShouldDispose, List`1 result, IReportDocument& definition, ResolvedReport& tocReport, ReportBookTocPosition& tocReportPosition)\n at Telerik.Reporting.Processing.ResolvedReportDocument.Create(ReportSource rs, IProcessingContext context)\n at Telerik.Reporting.Services.Engine.ReportEngine.GetParameters(String clientID, String report, Dictionary`2 parameterValues)\n at Telerik.Reporting.Services.AspNetCore.ReportsControllerBase.GetParameters(String clientID, ClientReportSource reportSource)\n at lambda_method(Closure , Object , Object[] )\n at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()\n at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()\n at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)\n at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()\n at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextExceptionFilterAsync()"
}
This is my Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /
COPY ["AspNetCoreDemo/CSharpAspNetCoreDemo", "AspNetCoreDemo/"]
RUN restore "AspNetCoreDemo/CSharpAspNetCoreDemo"
COPY .
WORKDIR "/src/AspNetCoreDemo"
RUN build "CSharpAspNetCoreDemo" -c Release -o /app
FROM AS publish
RUN publish "CSharpAspNetCoreDemo" -c Release -o /app
FROM base AS final
RUN apt-get update \
&& apt-get install -y --allow-unauthenticated \
libc6-dev \
\
libx11-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=publish /app
ENTRYPOINT ["", "CSharpAspNetCoreDemo"]