使用EXCEL2003+超市扫码枪自制资质文件借阅管理系统
使用EXCEL2003+超市扫码枪自制资质文件借阅管理系统
前几天听群里的朋友聊起扫码枪的原理,使我恍然大悟,原来我想多了,其实扫码枪的原理很简单,就是模拟键盘输入,进一步说就是模拟键盘输入一串数字,这串数字正是激光读出的条码号码。听着觉得很好玩。于是有空就去买了一个,花了200元,后来淘宝了一下,
发现亏了。
回来自己摆弄了摆弄,发现真的挺爽,于是我决定把它用到工作中,再给自己偷点懒,想来想去,公司也不是零售企业,也不需要大量出入库,怎么用它给自己偷点懒呢?我想,干脆做一个文件借阅系统吧,每次大家来借公司的各种资质,都要来我们部门要,然后我们要登记都借了那些东西,最后借阅人还要签字,然后还的时候也是这样登记啊,签字啊,不但烦琐,还经常出现有时候忘了做借或者还的手续,到处找不到资质谁借走了没有还。 利用五一的假期,做一个简单的文件资质借阅系统,就当娱乐了。首先就是设计流程。
1、 要对两类事物进行编码,分别是人员的编码跟文件的编码。我设计了如下规则: 人员编码规则:
人员编码由以下几个数据段组成,如“HR-000-0001”。分为3个意义段。
前面的HR,代表了本公司人力资源,统一开头的字符,有助于为以后可能出现的程序识别类别做好预留标识,万一以后要分类,可以方便的用字符函数来处理读到的码。
后边的000代表预留区别标识,最大可以分000-999,这样1000个类。
最后的0001代表了员工编号,考虑到本公司不可能有1000人,所以4位就够了。整个编号串长固定,分别是“2字符长度+3字符长度+4字符长度”,一共9个字符长度。固定串长有助于批量条码生成程序的排版,也方便制作统一大小的条码牌,另外就是为人员编码提供了另外一个隐含属性,“长度=9”,为以后可能出现的数据挖掘处理做预留信息。
分3个意义段其实也是为了体现高内聚,低耦合的数据编码规则特点,为以后使用如MID()函数等做预留方便。
我的号码:
文件编码规则: 文件编码如:“ZZ-ZHB-0000-000001”。分为了4个意义段。 前边的“ZZ”代表了“资质”的缩写,以后还可能出现“WJ”,“DA”,“文件”“档案”的缩写。 第二部分的三个字母“ZHB”代表了综合部。设计规则及意义同人员编码
同样,“0000”作为预留分类标识,“0000001”作为文件编号。(文件数量自然比较多了,考虑到用EXCEL2003做数据表,数量不宜太多,就定100万份算了)。 文件条码粘贴效果:
定完编码规则后,就需要批量制作出条码了。网上搜了一下,在excel中打印条码都是用那个控件,
Bar Control 9.0
(不过自动生成时候遇到点麻烦。说起来奇怪,添加控件后,原来写的VBA代码都不起作用了,仿佛被控件给中断了一样,只好再激活另外一个宏,把这个“僵硬”状态“挺”过去。
反正最后是可以运行了。)然后设置属性,注意,这里这个控件有两个属性栏目,一个共有的,面向对象的产物,一个是私有的,自己特有的属性,设置如下图。
共有属性要设定LinkCell,这个就是条码的指向的,
后边的批量生成就要靠不断用程序更改这个连接的值来刷新,但是麻烦的事情又出现了,无论你怎么弄程序,条码就是不刷新。后来又百度,有个高人说可以用控件的属性“Direction
0”这里做文章,不然的话无法刷新,原因他也不清楚。反正也不深究了,知道这个关键点就足够了。
画完控件设完属性,就要写一个方法驱动它自动刷新,这里我再做一个按扭控件。
代码写成这样:
执行后,条码就排好版了,(当然,打印区域已经设定好固定区域,这样每次生成的就都是按照A4排好版的了,另外,条码数据写在B列里)如图
打印在不干胶上留者粘贴,粘贴之前别忘了用裁照片的铡刀切好。
这里的条码设计,之所以用序号编码,是考虑到以后可能增加的文件及人员,这样只需
要向后延续序号就可以了。一目了然。避免了使用名称编码带来重复可能。
接下来就是设计系统的程序,分以下几个步骤,首先是制数据表,类似于使用数据库编程的建立数据库。我一共设计了4个表,分别是。
其中文件数据表这样设计列标:
做条码与文件名称的映射数据库使用。后边的两列好象没什么用,懒得删除了,留做以后预备吧。
总数据表这样设计:
相当于流水帐,每次的借或者还的信息都有记录,显示在这里,且这里设计了特别的规则,就是“一人做事一人当”就是说,谁借的文件,就必须谁来还,别人是不能还他借的文件的,有利于反溯手续流程。这就严肃了一种追责的制度。如果文件丢失,可以很方便的查询到文件最后是在谁手里。程序里遇到这种情况会有相应的提示。阻止非借阅人还文件。并提示联系借阅人某某使用自己的身份条码来归还。如图
人员数据表这样设计:
做条码与人名的映射数据库使用。条码数据与人员姓名横向对列,这也体现了数学里最普遍的思想,“映射”与“变换”。 然后就是设计用户使用界面,设计原则是,尽可能的连带触发各控件的方法调用,尽量避免用户扫码的同时还要操作鼠标点来点去。这里,表的保存也是连带触发,用户除了开始时候确定是“借”还是“还”,还是“查阅”需要点击标签控件外,不用再次点击任何控件,控件的得到焦点被设计成都是按照流程自动转移。 用户界面如下: 借阅界面
归还界面
查询界面
全部代码如下:
其实不是所有的编程都必须要面向对象,面向对象的做,有时候这种小事,面向过程编程就可以处理的很好。
Private Sub cbx_chayueshaixuan_Change() list_chayue.Clear
For i = 2 To Sheets("文件数据表").Cells(65536, "a").End(xlUp).Row If cbx_chayueshaixuan.Text = "全 部" Then
list_chayue.AddItem Sheets("文件数据表").Cells(i, 2).Value End If
If cbx_chayueshaixuan.Text = "未借出" Then If CStr(Sheets("文件数据表").Cells(i, 4).Value) = "未借出" Then list_chayue.AddItem Sheets("文件数据表").Cells(i, 2).Value End If End If
Next
If cbx_chayueshaixuan.Text = "已借出" Then
For j = 2 To Sheets("总记录表").Cells(65536, "a").End(xlUp).Row If Sheets("总记录表").Cells(j, 4).Value <> "" And Sheets("总记录表").Cells(j, 5).Value = "" Then
list_chayue.AddItem Sheets("总记录表").Cells(j, 2).Value & ",由[" & Sheets("总记录表").Cells(j, 4).Value & "]于[" & Sheets("总记录表").Cells(j, 3).Value & "]借出
尚未归还"
End If Next End If End Sub
Private Sub cmd_c_bumen_Click() If MultiPage1.Value = 0 Then tx_jy_ygname.SetFocus End If
If MultiPage1.Value = 1 Then tx_gh_ygname.SetFocus End If
If MultiPage1.Value = …… 此处隐藏:6425字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




