使用 TFS API 和 SSRS 以编程方式生成报告

2023-11-25

是否有一种简单的方法可以使用 TFS API 和 SSRS 生成 PDF、Excel、Word 或 TIFF 格式的报告?我可以通过使用 TFS 的 SSRS 仪表板从组合框中选择参数来手动生成报告,但我想在我的 Web 应用程序中包含一个导出按钮,以便我可以轻松绕过 Team Web Access 来生成报告。有任何想法吗?

我已经读过这个帖子我可以使用ReportExecutionService来自 SSRS 的类,所以我想知道是否可以从 TFS 服务器使用它。

我已使用此 Web 服务引用导入了命名空间:http://<TFS server>/reportserver/ReportExecution2005.asmx


我找到了一种使用以下方法生成报告的方法ReportExecutionService网络服务。如果已将 Web 服务引用添加到项目中,则会生成一个具有给定参数的文件。这里提供开始和结束日期作为参数,并使用以下命令生成报告渲染()方法.

private void GenerateReport()
{
    ReportExecutionService rs = new ReportExecutionService();
    rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
    rs.Url = "http://<TFS server name>/reportserver/ReportExecution2005.asmx";

    // Render arguments
    byte[] result = null;
    string reportPath = @"<SSRS report path>";
    string format = "PDF";
    string historyID = null;
    string devInfo = @"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";

    // Prepare report parameter.
    ParameterValue[] parameters = new ParameterValue[2];
    parameters[0] = new ParameterValue();
    parameters[0].Name = "StartDateParam";
    parameters[0].Value = "2012-06-01 00:00:00";
    parameters[1] = new ParameterValue();
    parameters[1].Name = "EndDateParam";
    parameters[1].Value = "2012-09-01 00:00:00";
    parameters[2] = new ParameterValue();
    parameters[2].Name = "AreaParam";
    parameters[2].Value = "[Work Item].[Area Hierarchy].[All]";
    parameters[3] = new ParameterValue();
    parameters[3].Name = "WorkItemTypeParam";
    parameters[3].Value = "[Work Item].[System_WorkItemType].&[Task]";
    parameters[4] = new ParameterValue();
    parameters[4].Name = "StateParam";
    parameters[4].Value = "[Work Item].[System_State].&[Active]";
    parameters[5] = new ParameterValue();
    parameters[5].Name = "TrendLineParam";
    parameters[5].Value = "both";

    DataSourceCredentials[] credentials = null;
    string showHideToggle = null;
    string encoding;
    string mimeType;
    string extension;
    Warning[] warnings = null;
    ParameterValue[] reportHistoryParameters = null;
    string[] streamIDs = null;

    ExecutionInfo execInfo = new ExecutionInfo();
    ExecutionHeader execHeader = new ExecutionHeader();

    rs.ExecutionHeaderValue = execHeader;

    execInfo = rs.LoadReport(reportPath, historyID);

    var parameters_ = rs.GetExecutionInfo().Parameters;

    rs.SetExecutionParameters(parameters, "en-us"); 
    String SessionId = rs.ExecutionHeaderValue.ExecutionID;

    Console.WriteLine("SessionID: {0}", rs.ExecutionHeaderValue.ExecutionID);

    try
    {
        result = rs.Render(format, devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs);

        execInfo = rs.GetExecutionInfo();

        Console.WriteLine("Execution date and time: {0}", execInfo.ExecutionDateTime);

    }
    catch (SoapException e)
    {
        Console.WriteLine(e.Detail.OuterXml);
    }
    // Write the contents of the report to an MHTML file.
    try
    {
        FileStream stream = File.Create("report.pdf", result.Length);
        Console.WriteLine("File created.");
        stream.Write(result, 0, result.Length);
        Console.WriteLine("Result written to the file.");
        stream.Close();
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }

}

顺便说一下,参数设置的值是MDX查询,我还没有找到如何设置特定的AreaPath,所以现在我只能列出“全部”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 TFS API 和 SSRS 以编程方式生成报告 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 实例方法的示例? (爪哇)

    我仍在学习 Java 中的方法 并且想知道如何使用实例方法 我在想这样的事情 public void example String random 但是 我不确定这实际上是实例方法还是其他类型的方法 有人可以帮我吗 如果它不是静态方法 那么它
  • 使用 Xcode 5 和 Matlab R2013b 在 OS X 10.9 中编译 mexopencv

    我有兴趣使用Kota Yamaguchi 的 mexopencv 库在我的系统上具有以下规格 OS X 10 9 小牛队 Xcode 5 MATLAB 2013b OpenCV 通过 macports 安装到 opt local inclu
  • 如何准确过滤 RGB 值以实现色度键效果

    我刚刚读过this教程并尝试了这个例子 所以我从网上下载了一个视频来自己测试 我所要做的就是在 if 条件下调整 RGB 值 这是示例中的示例代码 computeFrame function this ctx1 drawImage this
  • Android Facebook 示例应用程序在安装 FB 应用程序后无法登录

    起初我以为这是我的应用程序 但在使用任何 FB 示例应用程序时我遇到了完全相同的问题 以 HelloFacebookSample 为例 它为您提供一个登录按钮 登录后会显示您的照片并允许您发布状态更新 如果我的手机上没有安装 FB 应用程序
  • 将 URL 设置为 SEO 友好标题,使用破折号而不是 ID

    我正在使用 AngularJS 创建一个文章页面 其中包含各个文章详细信息的链接 这些链接基于 ID 以确保它们是唯一的 但我希望 URL 是带有破折号的标题 对 SEO 用户友好得多 而不是 ID 这是 Angular 示例 其中产品详细
  • 如何使用球衣发送 NTLM 验证的帖子请求?

    我正在使用 Java 对 Sharepoint 2013 进行 REST API 调用 如何使用 jersey Rest 客户端连接到 sharepoint 2013 注意 目前我正在使用 apache http 组件和NTCredenti
  • Python 错误代码

    我有一个 python 脚本 它使用 subprocess Popen 运行另一个 python 脚本的多个实例 每个实例都在不同的文件上运行 我收集了 300 个文件 我通过此过程运行这些文件以进行测试 每次运行时 都会有随机数量的文件失
  • Docker 远程 API 过滤器已退出

    我在 Docker Remote API 文档中看到过滤器可用于过滤状态 但我不确定如何形成请求 https docs docker com reference api docker remote api v1 16 list contai
  • 比较 Java 中的字符、整数和类似类型:使用 equals 还是 ==?

    我想确定一下 Java 中的一些事情 如果我有一个字符 一个整数或一个长整型以及诸如此类的东西 我应该使用 equals 还是 就足够了 我知道对于字符串 不能保证每个唯一字符串只有一个实例 但我不确定其他装箱类型 我的直觉是使用 equa
  • 在 Chrome/Mac 上强制 DOM 重绘/刷新

    每隔一段时间 Chrome 就会错误地渲染完全有效的 HTML CSS 或者根本不渲染 通过 DOM 检查器深入研究通常足以让它认识到其方式的错误并正确重绘 因此可以证明标记是好的 在我正在从事的项目中 这种情况经常发生 并且可以预见 因此
  • Android:以阿拉伯格式显示数字

    如何以阿拉伯格式显示数字 所以 如果我有整数 1 2 3他们成为 将区域设置设置为阿拉伯语 埃及 NumberFormat nf NumberFormat getInstance new Locale ar EG nf format i
  • 计算一行中有多少个 MySQL 字段被填充(或为空)

    我需要组合一种方法 使我能够量化用户已填充一行中的多少个字段 例如 User Name Age Country Gender Height 1 Mike 34 USA Male 6 2 Bill 23 CA 5 3 Jane 31 USA
  • .pdbrc 文件中的断点命令

    我想将断点命令保存在 pdbrc 就像是 b 81 commands 1 pp foo attr1 pp foo attr2 end b 108 commands 2 pp bar attr1 pp bar attr2 end 这将自动设置
  • 如何正确处理 nil UIApplication.sharedApplication().keyWindow

    当 的时候viewDidLoad称为视图应该被加载 但我总是崩溃UIApplication sharedApplication keyWindow为零 我应该把我的代码放在哪里 以便在加载视图后调用它 而不是每次用户回来时调用它 因此我已排
  • maven 着色 jar:更改输出位置

    我在使用 Maven Shade 插件时遇到困难 因为我希望将我的着色 jar 安装到与父 pom 相同的文件夹中 而不是本地src target目录 布局 maven 项目 guide parent pom xml projA pom x
  • 如何更改 ggplot2 条形图中的堆叠顺序?

    来自在线条形图指南 qplot factor cyl data mtcars geom bar fill factor gear 我怎样才能让 5 个坐在底部 4 个放在上面 3 个放在上面 qplot factor cyl data mt
  • 将 XMLDocument 写入具有特定换行符的文件 (c#)

    我有一个从文件中读入的 XMLDocument 该文件是 Unicode 并具有换行符 n 当我写回 XMLDocument 时 它有换行符 r n 这是代码 非常简单 XmlTextWriter writer new XmlTextWri
  • 为什么settimeout不延迟函数执行?

    function tryToDownload url oIFrm document getElementById myIFrm oIFrm src url alert url url escape url setTimeout delete
  • CreateFile("CONIN$" ..) 的作用是什么?

    我正在破解源代码plink使其与一致兼容 如果你不知道 unison是一个文件同步工具 它运行一个 ssh 命令来连接到远程服务器 但是Windows没有ssh exe 有 plink 它非常接近 但还不够接近 它的行为不像 unison
  • 使用 TFS API 和 SSRS 以编程方式生成报告

    是否有一种简单的方法可以使用 TFS API 和 SSRS 生成 PDF Excel Word 或 TIFF 格式的报告 我可以通过使用 TFS 的 SSRS 仪表板从组合框中选择参数来手动生成报告 但我想在我的 Web 应用程序中包含一个