Microsoft.Reporting.* 与 XML/XSLT

2023-11-21

我想向 .NET 应用程序添加报告功能。我的数据源只是应用程序的数据模型,即可能从任何东西(不一定从数据库)生成或加载的一堆对象。

最初的计划是从这些对象生成报告数据 XML 文件,然后使用 XSLT 将其转换为 XHTML 报告文件。然后可以使用浏览器控件在应用程序中显示报告。

但是,我注意到存在 Microsoft.Reporting.* 命名空间,并且根据我的尝试,似乎其中的类和控件也可以处理我的报告。使用这个代替是个好主意吗?与 XML/XSLT 方法相比,它会节省工作吗?我可能会遇到 Microsoft 报告框架的哪些限制(如果有)?


有几点需要考虑。

1) Reporting Services 是 Sql Server 的一部分,因此如果您采用这种方式,可能会遇到额外的许可证问题。

2) Reporting Services 可以提供网页,或者在 WinForms 中使用完整分页、排序、子报告、总计等 - 这在 XSL 中确实很难。它还可以很好地与打印机配合使用。

3) 报告服务附带一个所见即所得编辑器来构建报告。无论如何,它并不完美,但比手工制作容易得多。

4) 使用 XSL 创建 XHTML 可能会真正影响性能。 XSL 适用于整个 XML Dom,如果您正在处理多页报告,那么这可能是一个很大的文档。我希望 Reporting Services 能够更快地运行。

5) Reporting Services 可以利用整个 .Net,因此您可以免费获得许多其他功能。

考虑到所有这些,使用 Reporting Services 将节省您的时间,除非您的报告要求非常简单。但它不太有趣。

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

Microsoft.Reporting.* 与 XML/XSLT 的相关文章

随机推荐

  • HTML5 sessionStorage 可以写入磁盘吗?

    相关是否有安全的浏览器缓存 HTML5 会话存储的任何实现是否会写入磁盘 例如我可以依赖拥有一个 安全 私有 缓存吗 我知道它无法在浏览器会话之外持续存在 无论它是否 超时 已结束 注销 浏览器关闭 崩溃 计算机上的电源按钮 See HTM
  • GAE 数据存储备份

    是否有必要对GAE的数据存储进行备份 有谁有这样做的经验 建议和技巧吗 为了防止人为错误 始终需要进行备份 由于 App Engine 鼓励您构建针对同一数据集运行的代码的多个修订版本 因此能够返回非常重要 一个简单的转储 恢复工具在散装机
  • CALayer渲染上下文

    I use CATransform3D rotationAndPerspectiveTransform CATransform3DIdentity rotationAndPerspectiveTransform m34 1 0 500 成功
  • AWS Athena:删除日期范围之间的分区

    我有一个 athena 表 其基于日期的分区如下 20190218 我想删除去年创建的所有分区 我尝试了以下查询 但没有成功 ALTER TABLE tblname DROP PARTITION partition1 lt 20181231
  • 仅使用 CSS 的多色文本

    我不确定我的标题是否连贯地表达了我的问题 但我将在下面解释 我想为每个分配不同的颜色特点在文本字符串中使用only CSS 要查看我的问题的视觉效果以及进一步的解释 http codepen io Connor3xL pen ZOyzJK
  • php安装错误

    我已经使用 php 5 2 11 的插件版本安装了 WampServer2 1e x32 堆栈 我下载了apc3 0 19 dll并放在目录下 并在php ini中提供了所需信息 为了让它发挥作用 重新启动 wamp 服务器并导航到 php
  • 如何使用vbscript(同步)调用Web服务?

    其实例子有很多 我就用过其中之一 但它是异步工 作的 我的意思是它不会等待我调用的函数完成 function ProcessSend Set oXMLHTTP CreateObject MSXML2 XMLHTTP 4 0 Set oXML
  • 使用 javascript 获取我当前的地址

    我有兴趣使用 Javascript 获取我当前的地址 并通过组装其他一些 SO 线程来解决这个问题 1 2 所以想发布这个问题和答案 请参阅下面的答案 这是 HTML p p p p 这是JS var latitudeAndLongitud
  • Android/Java将String日期转换为long类型

    我需要将格式为 dd mm yyyy 的字符串转换为长类型 为了将值传递给android中的calendarProvider 目前我有 Calendar calendar Calendar getInstance long startEnd
  • Facebook PHP SDK - 图表返回错误:无效的 OAuth 访问令牌

    这是我的代码 登录 php
  • 按 WooCommerce 管理订单列表中的特定元字段过滤订单

    谁能告诉我 如何在 woo commerce 订单页面中按公司名称添加 设置过滤器 请分享功能或显示我的错误 以便我可以解决它 我尝试过但没有用 非常感谢您的帮助 add action restrict manage posts admin
  • TypeScript 泛型只会在简单情况下推断联合类型

    这是一个代码示例 declare function test ok
  • 当我在函数体中设置状态时,为什么 React 会变成 Infinite?

    如果我们用相同的值设置状态组件不会重新渲染 但当我在函数体中设置状态时它不适用 例如 如果我在按钮单击和单击按钮上设置相同的状态 则组件不会在按钮单击时重新渲染 function Test1 const name setName useSt
  • 如何解决未经检查的演员警告?

    Eclipse 向我发出以下形式的警告 类型安全 从 Object 到 HashMap 的未经检查的转换 这是对 API 的调用 我无法控制该 API 返回的对象 HashMap
  • noexcept 规范中是否允许使用“this”?

    我有一些代码需要我使用 this 但我希望它是 no except 友好的 struct foo Would actually be something with conditional noexcept void do something
  • Oracle PL/SQL:将整行从触发器转发到过程

    有一个 Oracle 10i PL SQL 行级触发器 它负责三个独立的任务 由于这样触发器相对混乱 我想将这三个任务导出到三个存储过程中 我正在考虑使用my table ROWTYPE参数或者可能是过程的集合类型 但我主要关心的是如何填充
  • 将数据从关系型数据库迁移到NoSQL

    是否有可能 是否有工具 最佳实践等将数据从关系数据库迁移到 NoSQL 格式 我有一个 JEE6 应用程序 利用 Hibernate ORM 持久保存到 MySQL 但现在我们希望转向 NoSQL 解决方案 但需要携带现有数据 Thanks
  • (OS 10048) 每个套接字地址(协议/网络地址/端口)通常只允许使用一次。视窗阿帕奇

    当尝试在 Windows 服务器上执行 httpd exe 时 出现以下错误 OS 10048 每个套接字地址 协议 网络地址 端口 通常只允许使用一次 AH00072 make sock 无法绑定到地址 myIpAddress 80 AH
  • 将简单的 HTML 转换为 RichTextBlock

    我从 Windows 8 开始 尝试将 HTML 转换为RichTextBlock I 已读过我可以使用这个功能 HtmlUtilities ConvertToText in a TextBlock但我找不到在中使用此功能的方法RichTe
  • Microsoft.Reporting.* 与 XML/XSLT

    我想向 NET 应用程序添加报告功能 我的数据源只是应用程序的数据模型 即可能从任何东西 不一定从数据库 生成或加载的一堆对象 最初的计划是从这些对象生成报告数据 XML 文件 然后使用 XSLT 将其转换为 XHTML 报告文件 然后可以