Excel VBA 收费单据打印/一步一步带你设计【收费管理系统】12
本文于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活学活用,更多文章案例请搜索关注!