分享

实用案例:批量打印,省心!根据打印模板循环打印,超过设定行数自动分页!

 冷茶视界 2024-04-26 发布于江苏

点【关于本公众号】了解一下,欢迎关注谢谢!

快速浏览

实用案例

|日期控件||简单的收发存||收费管理系(Access改进版)|

|电子发票管理助手||电子发票登记系统(Access版)|

|文件合并||表格拆分||审计凭证抽查底稿|

|中医诊所收费系统(Excel版)||中医诊所收费系统(Access版)||银行对账单自动勾对|

|印章使用登记系统|

收费使用项目

|财务管理系统||工资薪金和年终奖个税筹划||新税法下工资表模版|

内容提要

  • 生产领料单批量打印,超过8行自动分页
  • 用户窗体、ListView控件
大家好,我是冷水泡茶。
前几天在论坛上看到一个求助贴,是关于“批量打印”的,我们曾经分享过一个案例【凭证打印】,有点类似。
具体情况是这样的:
1、列表,明细数据表:

2、打印页,打印模板,红色字符是需要从“列表”中提取数据,然后打印:

3、具体需求

红色字是引用“列表”数据,超出的数据可以分页打印

他这个“列表”数据有一点奇怪,左边有好多空白,数据结构我们能看明白,左边的数据是一个完工产品,右边的明细是所需材料,但是处理起来有点麻烦,至少不好用SQL来处理了。

我曾想过把空白都填上,或者分成两个表,完工产品一个表,所需材料一个表,包括产品编码、名称字段,与完工产品相关联,最终还是没有改,保持原状吧。

基本思路:

1、我们参照【记账凭证打印】的思路,通过用户窗体来作为打印对话框。

2、我们设置两个ListView控件:

(1)LvProductList,显示不重复完工产品列表,也就是“列表”左边非空白部分。
(2)LvDetail,用于展示明细材料数据。我们点击LvProductList中的一条记录,则在LvDetail中显示对应的明细材料数据。

3、我们在LvProduceList中勾选1条或若干条记录,点“打印”按钮进行打印。

4、我们启动用户窗体时,把“列表”数据装入数组arr。

5、循环arr,把第2列单据编号作为字典dic的key,再添加二级字典,添加两个key,“title”与“data”,前者item为一个数组,内容是打印页的表头相关字段,后者的item也是一个数组,存放物料明细。

6、勾选了记录,点打印,我们则根据记录的单据编号,到dic中提取数据,表头部分填入“打印页”表的表头,物料明细部分,先装入数组temp,每8条明细数据打印一页,填入对应单元格后打印。

VBA代码

代码详见第二条推文

后记

1、列表的格式要严格按照表中的格式来组织数据,每张单据,单据号等记录都放在这组数据的第一行,如果循环到非空“单据编号”,则认为是新的产品
2、我们还设置了模糊搜索的功能,如果数据量较大,可以通过搜索缩小范围。
3、参照【付款申请单】,用类模块来引用“打印页”表中的部分单元格。
4、本来想在记账凭证打印】的基础上进行修改来着,但弄了一会,发现根本没法改,虽然思路差不多,但是数据处理方式完全不同,本案例是用数组字典,而记账凭证打印】用的是SQL查询,只好重写。
好,今天就到这里,我们下期再会!
~~~~~~End~~~~~~

安利小店
安利的牙膏非常不错,用了以后就不想再用其他的了;洗洁精洗衣液也是日常必备,用过都说好!

合谷医疗
合谷医疗专攻各种疑难杂症,尤其擅长
抑郁症腰颈椎疾病、儿童神经发育异常多动症自闭孤独症治疗,可谓神乎其技!体验过的直呼早点来就好了

我的付费知识星球:Excel活学活用
帮助VBA初学者提高VBA编程水平,欢迎加入!

喜欢就点个、点在看留言评论、分享一下呗!感谢支持!

案例文件分享说明

  • 案例文件可免费分享,但需符合以下要求:

  • 关注点赞点在看点...留言,方便的话分享一下就完美啦!如果不便走上面的“流程”,请打赏,万分感谢!

  • 请添加上方我的合谷医疗企业微信,案例文件通过微信发送。如有定制需求,亦可通过微信联系。

  • Excel问题,请在文章下面留言讨论!或者加入我的付费知识星球免费提问

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多