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

Setup ReportViewer in SharePoint 2010 web part

2 Answers 206 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Will
Top achievements
Rank 2
Will asked on 17 Dec 2011, 10:07 AM
I am brand new to Telerik Reporting Q3 2011 and brand new to Visual Studio 2010, but I wanted to create a web part for SharePoint 2010 that would display a Telerik Report using a ReportViewer control. It took me a week, countless hours of reading, and some help from proffessionals but I was ultimately able to create the web part that displayed a basic report showing data from an SQL database. I thought I would share my experience with everyone here.

Disclaimer: I am a complete noob at web part developing and may have done things that are not smart or safe to do. However, I did what I did and got the results I was looking for, so follow my lead at your own risk.

Special thanks to: Robby, Moncef, Bary and Gary for helping me with this!


How to create a VisualWebPart in SharePoint 2010 that contains a Telerik ReportViewer control that displays a report. (This assumes you have installed Telerik Reporting on a machine with Visual Studio 2010 and SharePoint Server 2010)

Setting up the SharePoint 2010 server

Follow steps 1-4 in this Telerik guide: http://www.telerik.com/help/reporting/asp-net-report-viewer-deploying-web-reportviewer-in-moss.html

Look on the Details tab of the properties of the Telerik.Reporting.dll file found at (C:\Program Files (x86)\Telerik\Reporting Q3 2011\Bin\Telerik.Reporting.dll) to see what version number you will be using in steps 2 & 3.

1/ Ensure the following .dll files are installed in the Global Assembly Cache: Telerik.Reporting, and Telerik.ReportViewer.WebForms by verifying they exist at C:\Windows\Assembly\

Install them as needed using the gacutil.exe through the Visual Studios 2010 command prompt with the following syntax: gacutil /i “full path to file.dll”

2/ Add the SafeControl lines to your web.config file (mine was located at C:\inetpub\wwwroot\wss\VirtualDirectories\80) using the appropriate Version number.

3/ Register the Handlers required in your web.config file, using the appropriate Version number.

While inside the web.config file, address the note at the bottom of the Telerik guide talking about SessionState by searching ‘enableSessionState’ and ensuring it is set to ‘ <pages enableSessionState="true" …’

Next search the web.config file for ‘name=”Session” ‘ and ensure you have the following two lines of code:
<remove name="Session" />

<add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="" />

Creating the VisualWebPart

In Visual Studios 2010, create a new SharePoint 2010, Visual Web Part, .NET Framework 3.5, Visual C# project

Choose your site for debugging and deploy as a farm solution then click Finish

4/ Drag a report viewer control from the toolbox to the VisualWebPart1UserControl.ascx and it will automatically add the Register line for you.

Modify the Group value property in the Elements.xml to the group you want your webpart to be in

Modify the Title and Description of your webpart as desired within the VisualWebPart1.webpart file

Click Deploy Solution under the Build menu

Add the web part to a page in SharePoint 2010

Open a webpart enabled page on your SharePoint 2010 site in your browser and click the edit button

Click the Web Part button on the Insert tab of the ribbon

Select the Group you named in the Elements.xml file and the Web Part name you used in the .webpart file then click the Add button

Click the save button to view the page normally and if everything is configured correctly you should see the ReportViewer control.

Creating the Report ClassLibrary Project

Open a second Visual Studio 2010 window by right clicking the VS icon on the task bar and selecting the option “Microsoft Visual Studio 2010”

Note: Do not add your new ClassLibrary project to your solution that contains your VisualWebPart project. I did this and started getting “The source of the report definition has not been specified” errors

Click the New > Project option within the File menu

Create a Visual C#, .Net Framework 3.5, Class Library that will hold your reports

Hit (Ctrl + Shft + A) to create a new item in the Class Library then select a Telerik Report Q3 2011 (version may vary)

Cancel out of the report wizard

Select the Page Header section of the report and then hit F4 to bring up its properties

Set the BackgroundColor property within the Style group to ‘Aqua’

Click the Preview tab to see a big cyan rectangle report with no text or data

Right click the ClassLibrary project and select properties then select the Signing tab on the left

Select the “Sign the assembly” check box, click in the drop down box “Choose a strong name key file:” and select “<New…>”

In the Create Strong Name Key dialog box, enter a Key file name like ‘ MyKey1 ‘ and uncheck the “Protect my key file with a password’ checkbox then click the OK button.

Save the ClassLibrary properties by hitting (Ctrl + S)

Click the Build Solution option in the Build menu

Attaching a report to the ReportViewer control

Switch to the Visual Studio 2010 window that has the VisualWebPart project open

Open the Package.package file and click the Advanced button at the bottom left

Click the Add button at the top right and select the “Add Existing Assembly…” option

Using the […] button to the right of the Source Path field, browse to the .dll created in your ClassLibrary’s Debug folder, mine was located here but your path will be different: C:\Vs2010 projects\PalmClassLibraryOfReports\PalmClassLibraryOfReports\bin\Debug\PalmClassLibraryOfReports.dll

Ensure the GlobalAssemblyCache radio button is selected for the Deployment Target and then click the OK button

Save the .package file by hitting (Ctrl + S)

Right click the References and select Add Reference

Select the ClassLibrary project by browsing to it using the Browse tab

Again, Right click the References and select Add Reference

This time Select Telerik.Reporting under the .NET tab or browse to it using the Browse tab

Open your UserControl.ascx.cs file and add the following code to the specified places

Add this to the using section:
using PalmClassLibraryOfReports; (be sure to use the name of your ClassLibrary)

Add this inside the Page_Load block:
        if (!IsPostBack)

        {

            AllTasks AllTasksReport = new AllTasks();

            ReportViewer1.Report = AllTasksReport;

            ReportViewer1.RefreshReport();

        }

(be sure to substitute the name of your report for my “AllTasks” and your ReportViewer ID for my ReportViewer1 which was the default) (you can name this instance of the report anything you want where I have called it “AllTasksReport”)

Save the UserControls.ascx.cs file

Click the Deploy Solution option in the Build Menu

Refresh the web part page to see if everything worked

Go back to the web part enabled page in your browser that contains the ReportViewer control and hit F5 to refresh.

If everything was configured correctly you will see a report generated inside the ReportViewer control with a cyan rectangle.

Connecting a report with an SQL data source to the VisualWebPart

If you would like to see a report with some actual data from an SQL database then continue reading!

 (I am using the AxioWorks SQList service which continuously copies SharePoint data into an easy to navigate SQL database.) http://www.axioworks.com/

Make sure the users that will be logged into SharePoint have security rights to read the SQL database. (I gave the Domain Users group access to my database, but had to enable using groups as logins first) http://stackoverflow.com/questions/5029014/how-to-add-active-directory-user-group-as-login-in-sql-server

 In the Visual Studio 2010 window with the ClassLibrary, hit (Ctrl + Shft + A) to add a new item then select a Telerik Report Q3 2011, name it and click the Add button.

Follow the steps in the Telerik Report Wizard: [Next >], [Next>], [Add New Data Source…], SQL Data Source [OK], [New Connection…], Server name: = localhost [Refresh], Select or enter a database name:=YourDbName [OK], [Next >],[Next>],[Query Builder…], Select Table [Add],[Close], Select a check box next to a column in the table [OK],[Next>],[Execute Query…],[Finish>>|], [Next>], [Next>], Select your table [Detail >],[Next>], [Next>], Select ‘Aspect’ for Style Sheets [Next >], [Finish >>|]

Open the App.config file and notice the connection string that was added. Mine looked like this:

    <connectionStrings>

      <add name="PalmClassLibraryOfReports.Properties.Settings.CrmReports"

connectionString="Data Source=localhost;Initial Catalog=CrmReports;Integrated Security=True" providerName="System.Data.SqlClient" />

    </connectionStrings>

Open the web.config file for your SharePoint site and search for ‘<connectionStrings>’. If you already have a this section, copy paste the line of code which adds the connection string to your database from your app.config file to your web.config file. If you do not have the ‘<connectionStrings>’ section then add it along with the actual connection string found in your app.config file.

In the Visual Studio 2010 window with the VisualWebPart project, open the UserControls.ascx.cs file

Change the name of the report from the basic one to the new one you created that displays data. Be sure to change both occurrences of the old report name.

Click the Deploy Solution option in the Build menu

Go back to your SharePoint page with the VisualWebPart and hit F5 to refresh it

If everything was configured correctly, you will see a report with some data in it.

2 Answers, 1 is accepted

Sort by
0
Erika
Top achievements
Rank 1
answered on 28 May 2014, 09:47 PM
These steps can no longer be followed because the only Telerik Reporting dlls that I can find are built with .NET Framework 4.0 or later.
These are incompatible with SharePoint 2010 which runs on FW 3.5.

Are SP2010 developers just out of luck?
0
Stef
Telerik team
answered on 29 May 2014, 01:33 PM
Hello Erika,

Please refer to my post in this forum thread.

If you need further help with downloading older versions of Telerik products, please opena  support ticket with details, which versions and products you need.

Regards,
Stef
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
Tags
General Discussions
Asked by
Will
Top achievements
Rank 2
Answers by
Erika
Top achievements
Rank 1
Stef
Telerik team
Share this question
or