带有自定义Web UI和格式的SSRS报告

时间:2012-10-05 07:50:20

标签: reporting-services

报告服务如何返回报告数据(我的报告服务器中已经有一些完整的报告)我的ASP.Net Web应用程序可以使用asp.net html和CSS接收,格式化和显示?

RS是否有可能以json,xml等方式重新报告报告,我可以在我的代码隐藏中使用它来显示它们?例如,我想要将头条标记为蓝色并将其设置为深蓝色,并为我的重新分配添加背景图像,并在程序化的报告中为某些值添加一些图标,等等。

我不想使用reportviewer控件。我的报告不使用任何输入参数。

1 个答案:

答案 0 :(得分:3)

我有一种尝试过的方法。

首先,您需要默认以XML格式输出报告。 http://msdn.microsoft.com/en-us/library/ms154040.aspx http://msdn.microsoft.com/en-us/library/ms152835.aspx

接下来,您需要使用XSLT将转换应用于XML输出 http://msdn.microsoft.com/en-us/library/aa178953(v=sql.80).aspx

我认为这是获取报告并将其转换为HTML格式的唯一方式

另一种溶解 基于TFD建议,我创建了一个简单的控制台应用程序,它读取由报告服务生成的csv文件并打印结果。

我使用了LinqToExcel因此读取数据会更快,但您不必使用它

代码:

System.Net.WebClient client = new WebClient();
        client.Credentials = new NetworkCredential("username", "password");
        client.DownloadFile("reporingservisesURL/ReportServer?
        rs:Command=Render&rs:Format=CSV", "file.csv");
        FileInfo file = new FileInfo("file.csv");

        var excel = new ExcelQueryFactory(file.FullName);
        var worksheetNames = excel.GetWorksheetNames();
        var results = from c in excel.Worksheet("UsersTry")
                      select c;

        foreach (var item in results)
        {
            Console.WriteLine(String.Format("UserID: {0} , UserName:{1} ,
            LoginName: {2}",item[0].Value,item[1].Value,item[2].Value));
        }

        Console.WriteLine("The End :)");
        Console.ReadLine();

我希望它可以帮到你