SQL Report Server Data Source - sql-server

we currently have an asp mvc site that's serving rdlc files without sql report server. That data is modeled in the code and then passed to the rdlc file which generates the report.
reportDataSource = new ReportDataSource("dataset", contactListsDataSet);
LocalReport.DataSources.Add(reportDataSource);
Something like the above. It all works great however what I'd like to allow is for the end user to be able to modify the look and feel of the report.
Currently the only way I can think of doing it is getting them to download SQL Server Report Builder and then download the rdlc template modify it and re upload the template. This just feels a bit clunky and if you click run in Report Builder is fails because there is no data source.
So my second thought was to setup SQL Report Server and from what I understand this facilitates the downloading and uploading of rdlc files once you've connected to the server. My problems with this and what my actual question.
Can SQL Report Server use a api/code end point and not directly access the database for the data? We do some calculations and structuring of the data and our reports are based on that and not the raw sql results?
We have multiple clients on one database and their data has a client_id on it where necessary so they only see there own data. For reports we'd only want a client to see their own modified reports. Can SQL Report Server handle multi tenancy?
Thanks

Related

SSRS Reports transferred to different server

I have several SSRS reports that need to be transferred to another server. Currently, all reports and SSRS reside on the same exact server as SSMS and all databases. I was wondering if there is a simple way to essentially take everything I have on SSRS (All Reports) and transfer them along with their data sources to the new server that I have. I know downloading all reports and uploading them to the new server is an option but I was wondering if their is an easier/more logical way to go about this process. After completion, SSRS and the SQL Server will be on different servers but still able to work together.
I have had really great experiences with an old (2007) program called "SSRS Scripter" (from Jasper Smith). It seems like it has been absorbed into a newer product called SqlServerFineBuild (which I have never used). The original stuff is a little hard to find, but very nice to work-with, imo.
Microsoft also has another product called Reporting Services Migration Tool (free) https://www.microsoft.com/en-us/download/details.aspx?id=29560 It is a command-line util and isn't the easiest or most-helpful. It has a UI-mode, but it isn't very user-friendly.
Both of these will only extract report files and settings from an existing site. You still need to use VStudio (+ reporting add-in) (and then some RS project work/design/config) to re-deploy.

SQL Server Reporting solutions that don't require self-hosting

I'm working on a multi-tenant SPA application that will be hosted in Azure and will store data (via API) in an Azure SQL Database.
I now need to add the equivalent of SSRS but we would like a fully hosted service rather than having to manage servers ourselves. My understanding is that even with SSRS, we would be required to manage a VM and would be responsible for security updates, upgrades, etc. -- something we're trying to avoid.
In my scenario, the users don't need to create reports -- the developer with create the reports. The users only need to be able to run the reports and print/save them as PDF or export them in CSV or Excel format.
Are there any kind of options for this?
Using WebForms you can develop reports locally without SSRS and use the report control to display it and offer PDF and CSV options. The reports are local to your project and have the RDLC extension instead of RDL extension which runs with an SSRS server.
https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftRdlcReportDesignerforVisualStudio-18001
If using MVC, there is no control to use so you have to resort to handling running the report and displaying to the browser which there are many samples out there that should be able to help you get going like:
MVC 5 How to use an object in rdlc report
https://www.youtube.com/watch?v=HBXTUFmQ0UA
Or
Hack in a WebForms page with MVC, something like:
https://www.c-sharpcorner.com/article/rdlc-integration-in-mvc-application-report-display-using-iframe/
OR
ReportViewerForMvc nuget package that promises to do this for you and a sample using it.

How do I set remove the database name from the query in Crystal Reports?

We are a development firm integrating Crystal Reports 2013 into our software. I need the ability to remove the database name from the SQL Query generated by Crystal Reports. We have customers running multiple instances of our software using the same data server. So we need to remove the database name so when it connects it uses the database specified in our file.dsn for an ODBC connection. We are using SQL Server as our data source. Any help would greatly be appreciated.
It depends on how you're using Crystal (this answer may or may not apply to your scenario). If you're using the .Net objects (in VB or C#) and programming against them you can switch out your connection information programmatically. It is finicky about the order in which you do it (e.g. you need to change the connection in the report and all sub reports, etc.).
I have two blog posts that have VB and C# with them that address changing database/connection dynamically through code, they are a few years old but they should still apply:
http://www.blakepell.com/2012-05-22-crystal-reports-extension-methods
http://www.blakepell.com/2010-09-17-crystal-reports-changing-the-database-connection-from-net-subreport-links-and-the-case-of-the-missing-parameter-values
On a side note, if you don't like the SQL that Crystal Reports generates you can always use a "Command" where you input your own SQL and then Crystal treats it kind of like a table (or you can take the SQL it generates to get your started and alter it to your liking, copy it, change it, then create a command with it).
Crystal reports uses that query for generating the schema for the report which you can change the connection or change the query inside the code of software but the schema should be the same,
perhaps you are not setting the connection of report by code successfully, you have to set the parameters and change the connection inside the code which loads the report if you do this successfully then you'll see the report.

SQL Server Report Services Premisson

I am currently looking into developing and designing the Report service system for work. My user does not seem to have access to Report Builder etc. I have given access to the below roles, but all I can seem to do is view report, create new folders and upload.
Browser
Content Manager
My Reports
Publisher
Report Builder
Does anyone know what I need to do to resolve this?
Thanks
Have you tried following the instructions on MSDN?
(These are the instructions for SQL 2008- I think the process for SQL 2005 is similar but may differ slightly)

Can SQL Server 2008 Reporting Services use a list of objects as a data source in a ASP.NET application

I am working on an ASP.NET (3/5) web application. In the application, we assemble lists of classes from a variety of data sources. I would like to create a report in SQL Server SSRS that renders a report from the contents of one of those lists, without pushing the list to the database (in fact, it would be a violation of a bunch of rules if we did that). Right now we are using SQL Server 2005 but we are considering a move to 2008. Is what I want to do possible and, if so, how do I do it?
Reporting services offer something called as DataSet extensions. You may use that to render the report from your custom data source. You do not need to load them back into database. However, certain editions of SQL like SQL Express reporting services does not support dataset extension.
You might want to use the ReportViewer control which ship with Visual Studio 2005 and Visual Studio 2008.
It can run in a "local mode", which doesn't require a Report Server backend. You simply drop it from the VS toolbox onto an ASPX form, then wire it up in code with any IEnumerable collection as its datasource, and then provide it with a report definition file for local mode (RDLC).
The RDLC file is basically the same as the original RDL (report definition language), but it omits a few things like the datasource, which is provided by your application. The ReportViewer control contains a smaller version of the report processing engine, so that at runtime, it "couples" the RDLC you provide with a data set or bindable collection, and it does the rest.
For more details on this control, check out the following site: www.gotreportviewer.com
HTH

Resources