gpt4 book ai didi

c# - 在 C# 中创建和打印表格报告

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:07 24 4
gpt4 key购买 nike

我需要创建一个简单的应用程序来根据数据库数据和一些用户输入生成报告。我有丰富的 C/C++ 经验,但对于这个项目,我们不得不选择 C#。

我想尽可能避免使用需要在客户端计算机上安装的第 3 方组件。因此,我什至想避免使用 MS Office 提供的功能(我本可以使用 XLS 模板,就像我的前辈所做的那样,但它看起来不像是可行的方法;无论如何,我的前辈的资源早已丢失,这可能很好,因为它是一个大约有 10 年历史的 VB 怪物,时不时地崩溃)。 Crystal 报表等也是如此。

我目前的想法是动态构建 HTML 表格(使用 HtmlDocument),将它们呈现给用户(使用 WebBrowser)并打印它们。这是正确的方法吗?有没有更简单/更强大/更好的方法?有哪些可能的陷阱?

最佳答案

动态构建表格是可行的。我经常使用这种技术,但对我来说这似乎是一种黑客攻击。我之所以使用它,是因为业务需求经常需要“足够好”和快速周转,而不是“漂亮”。


我将优先考虑我将要提出的建议,我本人对第 3 方组件有强烈的偏见。

在大多数情况下,我断然拒绝使用它们,并且会竭尽全力想出另一种解决方案,因为我经常被升级/许可所困扰。

也就是说……

幸运的是,对于 .NET,并非所有第 3 方组件都需要安装到您的客户端 PC 上。通过 XCOPY 部署,通常您可以只引用解决方案中的 .DLL 或项目并指定“始终复制”或“如果较新则复制”选项以仅包含 dll(如果您引用的是类库项目,则为生成的 dll) ) 并且只要 .dll 存在于与可执行文件相同的目录中,第 3 方组件就可以工作。

考虑到所有这些,我使用一个项目从 Windows 窗体打印 DataGridView CodeProject .这是一个您可以获得源代码、引用它并使用它而无需在客户端实际安装任何东西的工具。我在不止一个应用程序中使用过它,它是我最喜欢的工具之一。

它只会打印 DataGridView,但它会完全按照屏幕上显示的那样打印,所以如果这是您想要的,我建议您至少检查一下。


作为第三种选择,您可以考虑使用 ASP.NET。如果您要生成 HTML,使用 ASP.NET 比在 WinForms 应用程序中更容易(实际上更容易)。使用 ASP.NET,您可以获得 Repeater、ListViews 等,所有这些都使报告易于创建。

我有不止一个真实世界的应用程序,主要是 WinForms 应用程序,但有一个关联的报告站点。

例如,我有一个 WinForms 应用程序,用于扫描我们零售店接受的优惠券。这是一个 WInForms 应用程序,因为我需要直接与 COM 端口上的扫描仪交互。但是,对于报告部分,我建立了一个 ASP.NET 网站。在 WinForms 应用程序中,创建报告菜单选项并指向页面非常简单。我们的用户通常甚至不会考虑这是两个不同的应用程序这一事实。他们将其视为一体——他们的优惠券扫描应用程序。

所有这一切的要点是,通常可以使用任何给定的工具来做事,但使用适合工作的工具要容易得多。如果您要生成 HTML 报告,ASP.NET 是比手动构建报告更好的工具,如果您需要为大部分 UI 使用 WinForms 应用程序,您仍然可以这样做并使用该网站报告 - 为每项任务使用最好的工具。

关于c# - 在 C# 中创建和打印表格报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11330712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com