This is a migrated thread and some comments may be shown as answers.

Bind DataTable/DataSet/DataView to ReportViewer in Shareoint 2010 webpart

1 Answer 297 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Rico
Top achievements
Rank 1
Rico asked on 30 Aug 2012, 11:12 PM
Hello,

 I am not able to properly bind a DataTable to a report viewer that is embedded within a Sharepoint 2010 WebPart. (using Telerk.Reporting.dll version 6.1.12.820). I have bound the same data to a generic asp gridview without error.

I have followed the deployment/configuration steps for getting the report viewer to work properly within shareopint -- and it is appearing (just the underlying data is not that I'm binding is not).

I have also followed the instructions on how to bind a dataTable to a report viewer with no success.

http://www.telerik.com/help/reporting/object-data-source-how-to-bind-to-data-table.html

I have copied the code directly from this link (replacing the GetData() method with my own to create a simply 3 column, 1000 row table).

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ExportListUserControl.ascx.cs" Inherits="CADLibraryWebPart.ExportList.ExportListUserControl" %>

<%@ Register Assembly="Telerik.Web.UI, Version=2012.2.815.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4"

Namespace="Telerik.Web.UI" TagPrefix="telerik" %>

<%@ Register Assembly="Telerik.ReportViewer.WebForms, Version=6.1.12.820, Culture=neutral, PublicKeyToken=a9d7983dfcc261be"

Namespace="Telerik.ReportViewer.WebForms" TagPrefix="telerik" %>

<div style="height: 500px;">

<telerik:ReportViewer ID="ReportViewer1" runat="server" style="border:1px solid #ccc;" width="99%" height="99%"></telerik:ReportViewer>

</div>

private DataTable createData()

{

DataSet ds = new DataSet();
ds.Tables.Add();

DataTable table = ds.Tables[0];

int columnCount = 3;

int rowCount = 1000;

//Add columns

for (int column = 0; column <= columnCount - 1; column++)

{

table.Columns.Add("Column" + (column + 1).ToString(), typeof(string));

}

//Add rows

for (int row = 0; row <= (rowCount - 1); row++)

{

string[] rowVals = (string[])Array.CreateInstance(typeof(string), columnCount);

DataRowCollection rowCollection = table.Rows;

for (int column = 0; column <= columnCount - 1; column++)

{

rowVals[column] = "value_" + (column + 1).ToString() + "_" + (row + 1).ToString();

}

table.Rows.Add(rowVals);

}

return ds.Tables[0];

}

private void BindTelerikReport()

{

// Creating and configuring the ObjectDataSource component:

var objectDataSource = new Telerik.Reporting.ObjectDataSource();

objectDataSource.DataSource = createData(); // GetData(); // GetData returns a DataSet with three tables

// Creating a new report

Telerik.Reporting.Report report = new Telerik.Reporting.Report();

// Assigning the ObjectDataSource component to the DataSource property of the report.

report.DataSource = objectDataSource;

// Use the InstanceReportSource to pass the report to the viewer for displaying

Telerik.Reporting.InstanceReportSource reportSource = new Telerik.Reporting.InstanceReportSource();

reportSource.ReportDocument = report;

// Assigning the report to the report viewer.

ReportViewer1.ReportSource = reportSource;

}

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

BindTelerikReport();

}

}

I would appreciate any help with this. Thanks you!


1 Answer, 1 is accepted

Sort by
0
Steve
Telerik team
answered on 04 Sep 2012, 10:52 AM
Hello Ryan,

You should create an instance of your own report i.e. MyReport report = new MyReport() where MyReport is a report you have already created via the report designer and you have added TextBox items with appropriate Expressions. There is no AutoGenerateColumns feature in Telerik Reporting like with Grid controls, where you just provide data source to the grid and it automatically reflects the columns in your database and creates them automatically. The report is a template that you should create yourself (be it with the report designer or code). See Quickstart and Designing Reports help sections for more information.

Regards,
Steve
the Telerik team

BLOGGERS WANTED! Write a review about Telerik Reporting or the new Report Designer, post it on your blog and get a complimentary license for Telerik Reporting. We’ll even promote your blog and help bring you a few fresh readers. Yes, it’s that simple. And it’s free. Get started today >

Tags
General Discussions
Asked by
Rico
Top achievements
Rank 1
Answers by
Steve
Telerik team
Share this question
or