<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<
Guid
>" %>
<%@ Register Assembly="Telerik.ReportViewer.WebForms, Version=6.1.12.820, Culture=neutral, PublicKeyToken=a9d7983dfcc261be"
Namespace="Telerik.ReportViewer.WebForms" TagPrefix="telerik" %>
<%@ Register Assembly="Telerik.Reporting, Version=6.1.12.820, Culture=neutral, PublicKeyToken=a9d7983dfcc261be"
Namespace="Telerik.Reporting" TagPrefix="telerik" %>
<%@ Import Namespace="System.Web.Mvc" %>
<%@ Import Namespace="JobSystem.BusinessLogic.Services" %>
<%@ Import Namespace="JobSystem.Reporting.Data.NHibernate" %>
<!DOCTYPE html>
<
html
>
<
head
runat
=
"server"
>
<
title
>Consignment Note</
title
>
</
head
>
<
body
>
<
form
id
=
"main"
method
=
"post"
action
=
""
>
<
telerik:ReportViewer
ID
=
"ReportViewer1"
Width
=
"100%"
Height
=
"800px"
runat
=
"server"
>
</
telerik:ReportViewer
>
</
form
>
<
script
runat
=
"server"
>
public override void VerifyRenderingInServerForm(Control control)
{
//To avoid the server form (<
form
runat
=
"server"
>) requirement
//base.VerifyRenderingInServerForm(control);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
var dataSource = new Telerik.Reporting.ObjectDataSource();
dataSource.DataSource = typeof(NHibernateConsignmentReportDataProvider);
dataSource.DataMember = "GetConsignmentReportData";
dataSource.Parameters.Add(new Telerik.Reporting.ObjectDataSourceParameter("consignmentId", typeof(Guid), Model));
var companyDetailsService = DependencyResolver.Current.GetService<
CompanyDetailsService
>();
var report = new JobSystem.Reporting.ReportDefinitions.TelerikConsignmentReport();
var company = companyDetailsService.GetCompany();
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(company.DefaultCultureCode);
var logo = companyDetailsService.GetCompanyLogo();
var pageWidth = report.Width.Value;
report.MainLogo.Value = logo;
report.DataSource = dataSource;
var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
instanceReportSource.ReportDocument = report;
ReportViewer1.ReportSource = instanceReportSource;
}
</
script
>
</
body
>
</
html
>
The web.config like so:
<
system.web
>
<
httpHandlers
>
<
add
type
=
"Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=6.1.12.820, Culture=neutral, PublicKeyToken=a9d7983dfcc261be"
path
=
"Telerik.ReportViewer.axd"
verb
=
"*"
validate
=
"true"
/>
</
httpHandlers
>
<
system.web
>
<
system.webServer
>
<
validation
validateIntegratedModeConfiguration
=
"false"
/>
<
modules
runAllManagedModulesForAllRequests
=
"true"
/>
<
handlers
>
<
add
name
=
"Telerik.ReportViewer.axd_*"
type
=
"Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=6.1.12.820, Culture=neutral, PublicKeyToken=a9d7983dfcc261be"
path
=
"Telerik.ReportViewer.axd"
verb
=
"*"
preCondition
=
"integratedMode"
/>
</
handlers
>
</
system.webServer
>
I am really fighting objects on my report in that when I preview them, the fields move on me.
Background: I have a 17 individual SQL queries unioned together (dont ask, it is how I have to do it do to a limitation imposed by our software not Telerik).
a. I have a table on the report that is filtered to return 5 records only. (table A)
b. beneath the table, I have a text field
c. Beneath the text field is list control with a field in it (filtered to pull just one record only) (list B)
d. to the right of Table A, I have another table that is filtered to return 10 records only (table C)
The result when previewing the report is that table A displays properly its 5 records. Table C displays properly with its 10 records. Label (point b above) displays just below table A as I designed it.
Now here is the issue. List B is below the label but it moved way down the page to start just below the end of the rows in Table C
Basically I have a bunch of tables, text fields as labels/titles all over this report and as I add items to the report, they seem to attaching themselves to other objects on the reports.
Is there a way to see what they are attached to and/or tell it to stop doing that and just go where I put the field.
I have read the document online a few times and I just can't figure this out. Any help would be great.
Hi,
I am trying to load a trdp file into memory to read what parameters a Report has to create a filter page to fill up the parameters. I also need to set the connection string and provider name dynamically. I can do it using the code on the follow link:
But, it works for trdx (legancy) file. Using a UriReportSource, the code bellow does not work for trdp file to take a Report object and read information on the report.
Report DeserializeReport(UriReportSource uriReportSource)
{
var settings = new System.Xml.XmlReaderSettings();
settings.IgnoreWhitespace = true;
using (var xmlReader = System.Xml.XmlReader.Create(uriReportSource.Uri, settings))
{
var xmlSerializer = new Telerik.Reporting.XmlSerialization.ReportXmlSerializer();
var report = (Telerik.Reporting.Report)xmlSerializer.Deserialize(xmlReader);
return report;
}
}
This code with trdx (which is a xml) works fine, but my question is about the binary trdp.
How can I convert a uriReportSource (or given a path for a trdp file how to take it) into a Telerik.Reporting.Report object?
I need to to read the structure of the report and make changes (replace connectionstirng, read expected parameters, etc..).
Thank you.
I am using Telerik HTML5 Report Viewer Template where there are options to export PDF,CSV etc. Getting an out of memory exception while exporting to PDF because report has lot of images.
I am setting DataMember attribute to a method name to fetch report data. DataMember method is called in many instances like when report is being loaded or exported or when previewed.
Is there a mechanism by which I can get the information about what triggered the DataMember method.
For e.g. if Export to PDF is clicked how can I know that Export to PDF has triggered the DataMember method.
I also need suggestion on following stuff.
If I create a custom export to PDF button by modifying Telerik HTML5 Report Viewer Template
1. How can I hook my server side API to that button?
2. How can I pass the report parameters to that API?
Value cannot be null. Parameter name: instance |
Is Telerik Reporting built on top of an xml foundation?
For example, with rdlc, rdlc files are just xml files.
Are the files which underpin Telerik Reporting xml files, or something different?
Thanks
Is there anyway to print a list of just the columns from that page on a crosstab report?
My report column heading is just a code an I would like to give more detail about that code at the bottom of each page but would only want to explain the codes that have printed on that page.
For example if I a 2 page report on page 1 the columns that print are ABC, DEF, GHI I would like to print a list after the rows that would look like
ABC - Explanation
DEF- Explanation
GHI - Explanation
I'm not sure if this is possible but I hope my explanation makes some sense.
Thanks
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// configure routes for telerik reporting
Telerik.Reporting.Services.WebApi.ReportsControllerConfiguration.RegisterRoutes(config);
}