当前位置:首页 > 技术分析 > 正文内容

Excel VBA 收费单据打印/一步一步带你设计【收费管理系统】12

ruisui884个月前 (01-05)技术分析26

本文于2023年6月10日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!

☆本期内容概要☆

  • 用户窗体设置:收费结算模块设置(7)
  • 单据打印

大家好,我是冷水泡茶,前几期我们分享了【收费管理系统】的设计,最近一期是(Excel VBA 收费结算模块/一步一步带你设计【收费管理系统】11),今天我们接着来

今天的目标是完成收费单据打印的设计。

下面我们就开始:

1、增加一个复选框:CkbPrint,Caption改为“立即打印收费单:”

这里随带说一下昨天的合计标签,后来我把它的Caption改为“合计:0.00” 了。

跟LbAmount类似,我们要把CkbPrint的Visible属性设置为False,在我们启动“收费结算”功能模块时,才让它显示,其他模块不显示。初始值可以给它设置为TRUE,即默认直接打印收费单。这次我们可以根据LbAmount的位置来设置CkbPrint

确定显示CkbPrint位置,在If currTable = "tb收费明细" Then代码块里增加代码:

If currTable = "tb收费明细" Then
    With Me
    ......
        With Me.LbAmount
            .Left = Me.Frame3.Left + Me.CmdAddNew.Left
            .Top = Me.Frame3.Top - Me.Frame3.Height
            .Visible = True
        End With
         With Me.CkbPrint
                .Left = Me.LbAmount.Left + Me.LbAmount.Width
                .Top = Me.LbAmount.Top
                .Visible = True
         End With
     ......
    End With
End If

代码解析:先根据frame3的位置来确定LbAmount的位置,再根据LbAmount的位置来确定CkbPrint的位置,运行一下:

2、在收费结算单保存后,我们调用打印模块

(1)打印模板我们参考原来的的“合谷中医(收费管理系统2022)v1.0”中的打印表单:Print01,Print02。把Print02稍作修改,科室联,原来是把科室、医生、收费项目连成一个字段的,当时主要考虑一张单据上可能会有多个科室、医生的情况,现在我们不搞那么复杂,修改后,表格格式如下:

(2)代码可以参考,但需要大幅修改,我们单独设置一个打印过程:Sub PrintSingleVoucher(BillingNumber As String) ,放在Usf_AddAndModify窗体里。代码比较长,我放在第二条吧。这里就说一下制作思路。

A.与“合谷中医(收费管理系统2022)v1.0”不同,它是从listBox中取数的,我们现在从数据库中取数,虽然也可以从ListView中取数,但我觉得从数据库取数比较“正式”一点,虽然这可能会影响一点点性能。

B.PrintSingleVoucher过程带有参数,为单号

C.在我们点击保存按钮后,如果勾选了“立即打印收费单”,我们就查询保存时的单号的所有数据,存到数组里。

D.接下来就简单了(代码简单,过程繁琐),把数组的数据对应填到EXCEL表Print01,Print02。

E.数据填好后就打印出来。在过程开始,选择打印机,当用户点取消时退出程序。

'选择打印机,点取消退出
 If Application.Dialogs(xlDialogPrinterSetup).Show = False Then
    Exit Sub
 End If

这里一般很多人会用Application.Dialogs(xlDialogPrinterSetup).Show启动选择打印机程序,但点取消,它仍然运行打印,所以要用上面的代码。

3、在窗体保存按钮代码里,我们加上调用打印过程的代码:

If currTable = "tb收费明细" Then
    If Me.CkbPrint = True Then
        Call PrintSingleVoucher(Me.TxbNumber)
    End If
    MsgBox "结算成功!", , Me.LbTitle
Else
    MsgBox "保存成功!", , Me.LbTitle
End If

4、有时候,保存后立即查询数据会查不到,上网查了查,说可以使用事务(Transaction)来确保数据的一致性。在建立数据连接之后,加条代码cnn.begintrans,在关闭连接之前,加条代码cnn.committrans。


其他基本没有什么变化,我们来看一下效果,打印机我是选择打印到PDF文件的:

好,今天就到这吧。请大家多多点赞、留言、分享,谢谢大家,我们下期再会

☆猜你喜欢☆

Excel VBA 电子发票管理助手

Excel VBA 凭证打印

Excel VBA 中医诊所收费系统

Excel VBA 动态添加控件

Excel VBA 酷炫的日期控件

Excel 固定资产折旧计提表

Excel VBA 数组字段定位排序

Excel 处理重复值

Excel VBA 最简单的收发存登记系统

Excel 公式函数/查找函数之LOOKUP

Excel VBA 文件批量改名

Excel 公式函数/动态下拉列表

Excel VBA 输入逐步提示

Excel 基础功能【数据验证】



本文于2023年6月10日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/35.html

分享给朋友:

“Excel VBA 收费单据打印/一步一步带你设计【收费管理系统】12” 的相关文章

Git 分支管理策略汇总

最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码?我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程。所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家。Git flow在这种模式下,主要维护了两类分支...

Gitlab之间进行同步备份

目前,我们公司有两个研发团队,分别在北京和武汉,考虑到访问速度的问题,原有武汉的研发环境在近端部署。也就是北京和武汉分别有两套独立的研发管理环境,虽然这解决了近端访问速度的问题,但是管理上较为分散,比如研发环境备份和恢复就是最重要的问题之一。最近,处于对安全性和合规性的考虑,希望将北京和武汉的源代码...

身体越柔软越好?刻苦拉伸可能反而不健康 | 果断练

坐下伸直膝盖,双手用力向前伸,再用力……比昨天前进了一厘米,又进步了! 这么努力地拉伸,每个人都有自己的目标,也许是身体健康、线条柔美、放松肌肉、体测满分,也可能为了随时劈个叉,享受一片惊呼。 不过,身体柔软,可以享受到灵活的福利,也可能付出不稳定的代价,并不是越刻苦拉伸越好。太硬或者太软,都不安全...

《暗黑破坏神 2:重制版》PC 版 2.3 版本发布,支持英伟达 DLSS

IT之家 12 月 3 日消息,暴雪为《暗黑破坏神 2:重制版》PC 版发布了更新 2.3 版本,添加了“离线难度缩放”滑块(玩家可以在单人游戏时增加挑战和奖励的级别)、多项辅助功能和用户界面改进,以及英伟达 DLSS 支持。玩法改进:玩家现在可以在离线游戏的选项菜单中使用“游戏难度等级”,它提供与...

Vue从入门到实践 丨Vue-router基本使用

1. 什么是 vue-routervue-router 是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。vue-router 的官方文档地址:https://router.vuejs.org/zh/2. vue-router 安装...

Vue中路由router的基本使用

??本文开始我们来给大家介绍在Vue中非常重要的一个内容,就是路由Router什么是路由后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特...