I am working on Web Based SSRS Editor. I have succeeded in developing a Parser which access the SSRS schema from CATALOG Table from Database and converts it to HTML.
From here User can modify the report and submit the change, again Parser receives the HTML and converts it to Desire results.
But when I am visiting that report in ReportViewer, its still showing the Old Report.
And when I am downloading the Report from Report Manage URL it is showing the changes that I have made from the Application.
I doubt whether Microsoft is also storing the RDL in physical format.
Please Help..
Finally I got the solution. Before I was directly updating the Content column in Catalog table, and though the changes updated in the DB, but it was not reflecting on actual Live Report.
After some searching I found this. How to deploy report through code and it is done.
class Sample {
static void Main(string[] args)
{
ReportingService2010 rs = new ReportingService2010();
rs.Url = "http://<Server Name>" +
"/_vti_bin/ReportServer/ReportService2010.asmx";
rs.Credentials =
System.Net.CredentialCache.DefaultCredentials;
Byte[] definition = null;
Warning[] warnings = null;
string name = "MyReport.rdl";
try
{
FileStream stream = File.OpenRead("MyReport.rdl");
definition = new Byte[stream.Length];
stream.Read(definition, 0, (int)stream.Length);
stream.Close();
}
catch (IOException e)
{
Console.WriteLine(e.Message);
}
try
{
string parent = "http://<Server Name>/Docs/Documents/";
CatalogItem report = rs.CreateCatalogItem("Report", name, parent,
false, definition, null, out warnings);
if (warnings != null)
{
foreach (Warning warning in warnings)
{
Console.WriteLine(warning.Message);
}
}
else
Console.WriteLine("Report: {0} created successfully " +
" with no warnings", name);
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.InnerXml.ToString());
}
} }