如何在winform应用程序中生成产品收据?

2024-05-25

我第一次开发 winform 应用程序,我有一个 gridview,其中包含用户已购买的产品列表。

我点击了一个“打印”按钮,允许用户生成如下收据:

所以在这里我很困惑是否应该使用“winform默认RDLC或Crystal Report”或者是否应该生成PDF然后让它作为收据打印出来,但我不确定PDF是否是生成收据的好选择。

对于 Crystal Report,我读到我需要安装它,并且客户端(将使用此桌面应用程序)必须安装 Crystal Report,而且还有一些涉及 Crystal Report 的许可,这是我不想要的。

另外,如果我使用水晶报表,那么我不确定是否可以生成完全相同的收据(带有表格格式),并且会很复杂吗?

收据有点复杂,所以有没有更好的工具或方法,或者我应该如何生成上图所示的收据?

Update : 打印纸总尺寸为:7.50 厘米用户想要打印中心的所有内容。

Discount = FinalAmount - MRP;

客户姓名、手机号码、账单号码、付款方式值由用户自己在表单上输入。

我有一个 Excel 文件,其中包含产品列表,每个产品都有如下信息产品 ID、产品名称、MRP、税务信息,如 CGST、SGST.

根据产品 ID 从 Excel 文件填充 gridview 的代码:

 using (OleDbConnection cnnxls = new OleDbConnection(strConn))
                    using (OleDbDataAdapter oda = new OleDbDataAdapter(query, cnnxls))
                    {
                        oda.Fill(dtProductList);
                        DataColumnCollection columns = dtProductList.Columns;
                        if (!columns.Contains("FinalAmount"))
                        {
                            dtProductList.Columns.Add(new DataColumn() { ColumnName = "FinalAmount", DataType = typeof(decimal) });
                        }

                        if (!columns.Contains("Quantity"))
                        {
                            dtProductList.Columns.Add(new DataColumn() { ColumnName = "Quantity", DataType = typeof(int) });
                        }
                        DataRow lastRow = dtProductList.Rows[dtProductList.Rows.Count - 1];
                        lastRow["FinalAmount"] = Convert.ToDecimal(lastRow["MRP"]);
                        lastRow["Quantity"] = 1;
                    }

生成并打印收据

您可以使用任何报告设计器工具(例如 RDLC Reports 或 Crystal Reports)来生成报告。 RDLC 报告已经足够好了。你可以打印 RDLC 报告,显示或不显示打印对话框 https://stackoverflow.com/a/34728429/3110834。您还可以轻松手动或使用代码导出RDLC报告 https://stackoverflow.com/a/40409777/3110834.

如果出于任何原因您不想使用报告工具,您可以考虑另一种选择使用运行时 T4 模板轻松生成 HTML 报告 https://stackoverflow.com/a/39713817/3110834.

使用 RDLC 报告,如何在单个单元格中显示多个字段

您可以轻松地使用表达式在单个单元格中显示多个值。另外,作为另一个选项,您可以使用单个行组中的行并在单个列中显示不同的字段。

示例 1 - RDLC - 使用表达式在单列中显示多个字段

以下步骤向您展示如何使用表达式在单个列中显示多个字段。我假设您已经设置了数据源并且已经ProductName, UnitPrice and Quantity字段。然后,按照下列步骤操作:

  1. Drop a Table从报表设计界面上的工具箱。
  2. 在第一列的第一个数据行(不是标题行)中,右键单击并选择ProductName (image https://i.stack.imgur.com/weQAO.png)
  3. 选择第二列的标题并输入UnitPrice/Quantity (image https://i.stack.imgur.com/gesmK.png)
  4. 在第二列第一个数据行中,右键单击并选择Expression. (image https://i.stack.imgur.com/7xHYr.png)
  5. 在表达式窗口中输入所需的表达式,例如:

    = "UnitPrice: " & Fields!UnitPrice.Value.ToString() & System.Environment.NewLine & "Quantitye: " & Fields!Quantity.Value.ToString()

示例 2 - RDLC - 使用行组在单列中显示多个字段

以下步骤向您展示如何在单列中显示多个字段。我假设您已经设置了数据源并且已经ProductName, UnitPrice and Quantity字段。然后,按照下列步骤操作:

  1. Drop a Table从报表设计界面上的工具箱。
  2. 在第一列的第一个数据行(不是标题行)中,右键单击并选择ProductName (image https://i.stack.imgur.com/weQAO.png)
  3. 选择第二列的标题并输入UnitPrice/Quantity (image https://i.stack.imgur.com/gesmK.png)
  4. 右键单击第一个数据行的行标题并选择Insert RowInside Group - Below (image https://i.stack.imgur.com/CZvcK.png)
  5. 在第二列第一个数据行中,右键单击并选择UnitPrice. (image https://i.stack.imgur.com/8wUAq.png)
  6. Click on the [UnitPrice], and then press Home and type UnitPrice: (image https://i.stack.imgur.com/y1znh.png)
  7. 在组的下一行中对数量执行相同的操作。
  8. 如果组中需要另一行,请重复步骤 3。 您可以通过选择单元格并设置来设置单元格的边框BorderStyle分别为上、左、下、右。

Download

您可以在此处克隆或下载使用表达式的示例:

  • 存储库 https://github.com/r-aghaei/ReportMultipleValueInCell
  • zip file https://github.com/r-aghaei/ReportMultipleValueInCell/archive/master.zip
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在winform应用程序中生成产品收据? 的相关文章

随机推荐

  • 是否可以自定义区域形状?核心位置

    例如 至少我想要一个正方形 矩形 道路的形状作为我的区域 不它不是 根据文档 目前唯一的区域类是 CLCircularRegion 显然是圆形 和 CLBeaconRegion 基于与 iBeacon 的接近度 未来苹果可能会添加对自定义形
  • 解析没有标记名的 xml

    我有一个 xml 文件
  • 在maven项目之间共享测试资源

    有一个明确的解决方案可以使用以下命令在 Maven 项目之间共享公共测试代码test jar的目标maven jar plugin插件 参见here https stackoverflow com questions 174560 shar
  • 以编程方式缩放 UIWebView,无需手势 - 中心点计算不正确

    问题 我的 iPad 应用程序中有一个 UIWebView 我需要以编程方式缩放它 但不使用手势 点击 该应用程序 有一个 和一个 按钮 用于以用户定义的增量放大和缩小 这是一个针对视障人士的应用程序 以前 当我的应用程序运行时 此 缩放按
  • 将 UTC 日期转换为 PHP 本地时间

    我使用以下方法将 UTC 日期存储到数据库中 utc gmdate M d Y h i s A 然后我想将保存的 UTC 日期转换为客户端的本地时间 我怎样才能做到这一点 Thanks 如果客户端指的是浏览器 那么您首先需要从浏览器将时区名
  • 在 Jenkins 管道脚本中找不到文件

    我正在尝试让当前在 Jenkins master 上运行的管道脚本在远程 Jenkins 节点上执行 但我有一个奇怪的现象FileNotFound例外 我能够重现该问题的最基本版本的管道是这样的 node remoteNode env SE
  • WiX 属性引用另一个属性

    我正在尝试为我的应用程序创建多个快捷方式 通过使用在命令行上传递不同的参数Arguments的属性Shortcut http wix sourceforge net manual wix2 wix xsd shortcut htm元素 我希
  • 如何在 Jetty 中配置 webapps 部署目录

    这一定是一个非常简单的答案 但我似乎找不到 我刚刚开始使用码头7 0 2 on CentOS 5 5并部署了一个webapp使用默认设置 只需将我的 WAR 文件放入 webapps目录 当 Jetty 启动时 它将战争提取到 tmp je
  • 是否可以向 Google Home 设备发送语音通知

    当我们收到一些特定事件但不确定是否支持 可能时 我们希望通过我们的服务向 Google Home 设备发送语音通知 例如 当厨师快准备好时 我们会通知用户 如下所示 嘿 安德 你的饭菜将在 5 分钟内准备好 别忘了把它拿出来 有一些脚本声称
  • 检查包含 URL 的字符串“http://”

    我正在尝试检查用户输入的 URL 但我正在与一些错误和警告作斗争 BOOL textFieldShouldReturn UITextField textField check http NSString check textField te
  • 引起原因:java.lang.NumberFormatException:无效的双精度:“”带有空白值

    当我遇到错误时JSON字符串有一些空白值 从服务器获取 如何处理空白值 这是 JSON status success data id 1 name ABC address ABC QWE lat 16 799999 lng 96 15000
  • 使用 YouTube API 检查视频是否可嵌入

    我试图弄清楚 YouTube 视频是否可以使用 YouTube Data API v3 嵌入 从类似问题的答案中我注意到视频的 status embeddable 属性 对于这样的请求 https www googleapis com yo
  • 如何使用 JavaScript 隐藏滚动条

    怎样才能隐藏滚动条呢 我想这样做是因为滚动条不太好 overflow hidden没有用 因为我的 div 元素还有许多其他元素 所以设置overflow不能解决我的问题 你可以用这个隐藏滚动条 document body style ov
  • 在 MVC3 应用程序的编辑操作方法中使用 AutoMapper

    这是我的控制器代码 它 100 按照我的需要工作 但是 POST 方法没有使用 AutoMapper 这是不行的 如何在此操作方法中使用 AutoMapper 我使用实体框架 4 和存储库模式来访问数据 public ActionResul
  • 防止按住 Shift 键时按下按键

    I m trying to prevent certain keys from being entered into an input box but only if that particular key is pressed whils
  • 默认 GCS 存储桶名称

    根据https cloud google com appengine docs python googlecloudstorageclient activate https cloud google com appengine docs p
  • 如何将第一行更改为R中的标题?

    我有下表 X 5 X 6 X 7 X 8 X 9 X 10 X 11 X 12 X 13 17 Zip CuCurrent PaCurrent PoCurrent Contact Ext Fax email Status 18 74136
  • 将回形针 url 添加到 json

    通常在 html 中 我们会在图像标签内使用 Model field url thumb 如何在 json 上执行此操作 尤其是使用 hash secret 如果这对任何人都有帮助 我找到了一个很好的方法来做到这一点 class MyMod
  • 在Python中比较字符串的最快方法

    我正在用 Python 编写一个脚本 该脚本将允许用户输入一个字符串 该字符串将是指示脚本执行特定操作的命令 为了便于讨论 我会说我的命令列表是 lock read write request log 现在 我希望用户能够输入 log 一词
  • 如何在winform应用程序中生成产品收据?

    我第一次开发 winform 应用程序 我有一个 gridview 其中包含用户已购买的产品列表 我点击了一个 打印 按钮 允许用户生成如下收据 所以在这里我很困惑是否应该使用 winform默认RDLC或Crystal Report 或者