3

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

RS 是否可以将报告重新运行为 json、xml 等,我可以轻松地在我的代码隐藏中使用这些报告来显示它们?例如,我想将标题设为蓝色,将值设为深蓝色,并为我的报告放置背景图像,并以编程方式在报告中为某些值放置一些图标等。

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

4

1 回答 1

3

有一种方法我已经尝试过了。

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

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

我认为这是获取报告并将其样式转换为更像 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();

希望对你有帮助

于 2012-10-05T20:42:19.897 回答