时间:2022-10-26 11:14:52
[摘 要]在商场中,有关客户的优惠卡、证件、证书,打印输出程序设计思路及主要程序
[关键词] 优惠卡 单一卡证 打印输出 程序代码
一、需求分析:
在商店日常管理中,常常需要发放有关优惠卡、证书、证件。通常情况多数单位是用电子表格等软件完成输入、编辑。但在打印输出时不很方便,每次只一个一个的编辑好,然后在一个一个输出,经常出现错位的现象。本人给一家商店用Visual Foxpro6.0编写了一个优惠卡等证件、证书打印输出程序。在使用过程中,用户很满意,使用方便。现在我把这个程序设计思路、源程序写出来与大家交流。
二、设计思路:
首先 设计一个把每个客户的有关要往优惠卡等证件、证书打印的信息都输到一个VFP数据表中,还可进行编辑、校对客户信息的程序。以保证客户信息的准确无误。
其次 设计一个能查找定位要输出的记录位置程序,并显示这个客户的信息,再设计该记录在表中有效性,唯一性的程序。这样才能为下一步准确打印输出做好准备。
最后 报表设计。报表设计在系统软件的报表设计项目设计的“标题、页标头” 项目设计中进行设计,不能到细节中设计,否则就不能实现了优惠卡、证的单一打印输出了。
三、程序设计
1.部分客户资料如下:
2.根据客户资料设计了如下表结构
表结构:
字段 字段名 类型宽度
1 编号字符型20
2 性别字符型2
3 出生年月 日期型8
4 联系电话 字符型11
5 通信地址 字符型30
6 发卡时间 日期型8
3.根据以上表结构设计如下操作表单
这个表单操作如下:先通过“查询记录”按钮,输入用户要打印的记录,然后再用“指定打印记录”按钮指定要打印的记录,最后通过点击“打印一页”按钮按提示打开打印机,并把证书放入打印机,确认即可完成打印输出证书了。
4.这每个按钮的程序设计源代码如下:
(1)“查询记录”源代码不是本文说明的重点,且查询记录方法有很多种,读者可自行设计,这里不多介绍。
(2)“指定打印记录”源代码如下:
DO FORM 指定记录 TO DQJL (CR) MAND1.ENABLED=.T. (CR) thisform.refresh
执行“指定打印记录”之后将出现“指定记录”表单主要按钮如下:
①“当前记录”源代码如下
ledqjl=recno() (CR) thisform.rease
②“下一个记录”源代码如下
if eof() (CR) count to aaa (CR ) dqjl=aaa (CR) messagebox('已到最后一个记录,不能再移动了!',0,'注意') (CR) else (CR) skip (CR) dqjl=recno() (CR) endif (CR)thisform.release
③“上一个记录”源代码如下
if bof() (CR) dqjl=1 (CR) messagebox('已到第一个记录,不能再移动了!!',0,'注意') (CR) else (CR) skip -1(CR) dqjl=recno() (CR) endif (CR) thisform.release
④“第一个记录”源代码如下
go 1 (CR) dqjl=1 (CR) thisform.release (CR)
⑤“最后一个记录”源代码如下
go bott (CR) dqjl=recno() (CR) thisform.release
(3 ) “打印一页”源代码如下
set filter to RECNO()=DQJL(CR) report form bb1 prev(CR) MAND2.ENABLED=.T.
(4)“打印二页”源代码如下
set filter to RECNO()=DQJL(CR) report form bb2 preview (CR)
MAND1.ENABLED=.f.(CR)MAND2.ENABLED=.f.
(5)“退出”源代码如下
close all(CR) thisform.release
(5)报表设计如下图
图中本人只列举了一项,其它项目读者可自行增加。注意!我设计时是在VFP报表设计系统中的“标题”项目中进行的。读者在试用时注意。
参考文献:
[1]《数据库应用技术----Visual FoxPro 6.0》魏茂林 主编 电子工业出版社
[2]秦爱明 “浅谈商品进销存信息管理系统”,《商场现代化》2010年第33期
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文