报告服务如何返回我的 ASP.Net Web 应用程序可以使用 asp.net html 和 CSS 接收、格式化和显示的报告数据(我的报告服务器中已经有一些完整的报告)?
RS 是否可以将报告重新运行为 json、xml 等,我可以轻松地在我的代码隐藏中使用这些报告来显示它们?例如,我想将标题设为蓝色,将值设为深蓝色,并为我的报告放置背景图像,并以编程方式在报告中为某些值放置一些图标等。
我不想使用reportviewer 控件。我的报告不使用任何输入参数。
报告服务如何返回我的 ASP.Net Web 应用程序可以使用 asp.net html 和 CSS 接收、格式化和显示的报告数据(我的报告服务器中已经有一些完整的报告)?
RS 是否可以将报告重新运行为 json、xml 等,我可以轻松地在我的代码隐藏中使用这些报告来显示它们?例如,我想将标题设为蓝色,将值设为深蓝色,并为我的报告放置背景图像,并以编程方式在报告中为某些值放置一些图标等。
我不想使用reportviewer 控件。我的报告不使用任何输入参数。
有一种方法我已经尝试过了。
首先,您需要默认以 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();
希望对你有帮助