Foxtable让 中文系毕业的我重圆编程梦

前言

算起来,我其实是中国教育的一个受害者。打从中学接触到计算机起,我对计算机的热爱就达到了几近疯狂的地步。高中计算机会考前那段时间,因为备考晚自己时间一直待在学校机房里面练习,大脑兴奋得晚上难以入眠。我的高考志愿也是清一色的填写了计算机专业,可是天不如人愿,高考志愿没有填好,我最后服从分配被分到了中文系,你们能想像我眼睛都要哭瞎了的感受吗?因为家庭经济原因根本不允许我重新复读一年,所以我就这样第一次与我的编程梦擦肩而过了。

进了大学以后,业余时间比较多,所以我有大量的时间来学习跟计算机有关的知识,因为没有人指导,我什么东西都学,什么计算机维修、网管管理、网页制作软件、Photoshop等图片处理软件、Flash等二维三维动画处理软件,只要当时能接触的跟计算机有关的东西我都会跑到学校图书馆里去借来学一学。因为什么都学,也是什么都不精通,导致大学毕业以后,拿着仅有的计算机二级证书(VFP)我根本不敢去找什么软件公司去应聘。不过好在我的涉猎够广,最后被一家大型超市招去做了一名IT,做桌面支持。在这里我见识到了利用ExcelVBA可以让数据处理全部实现自动化,成倍的提升办公效率。也是在这里重新唤起了我编程的梦。

一、积累

         我从2008年步入社会进入工作岗位以来,因为各种不同的原因先后换了好多份工作,接触过好多行业,先后在大型超市、吸塑行业、PCB、模切行业、洗车制造业、PCBA做过IT、生管、生产主管、生产主任。在这些公司同样用Excel+VBA结合公司的数据库,在公司ERP的基础上作二次开发,以及做日常工作中需要的小工具小系统。也正是这段时间让我接触到了包括零售业、制造业等商用ERP系统以及后台数据库的设计。再加上我工作岗位的特殊性,从与客户沟通、下订单、物料追踪、生产进度追踪、仓库库存、出货安排,甚至是协助处理客诉等等,这些工作经验让我对公司的整个生产运维能有一个通盘的了解。

    在这些年里,很多同事看着我用VBA给他们编写各种适用的工具,在他们眼里我已经非常牛X了,经常会问我为什么不去软件公司找一份工作?每每我都是只有苦笑,像我这样的专业背景,而且还只会一个VBA,有哪个软件公司会要我这样的人哟?

二、遐想

         在给自己或者同事编写各式各样的小软件小工具之后,我发现,好多东西都是相似的,有规律可循的,我应该给自己写一个软件框架,这样就不用每次都要重新写所有的东西多作好多无用功了。因为当初我也只熟悉VBA,所以就想利用Excel的便利与亲民特点,做一个快速开发的平台。我也曾为此在ExcelHome论坛发贴找人一起来做这样的事,这是当初我发的帖子

 

(图2-1 帖子一)

 

(图2-1 帖子二)

         因为很多人不看好这个项目,所以后来只有我一个人开始在做。那段时间我刚好停下来在找工作,也正好利用这段空闲时间进行这个项目的开发,可是开发过程中我发现了操作Excel的很多不可控性,特别是数据有效性,一旦遇到复制粘贴就彻底毁了。很多输入效果想在Excel里面实现的话都不太方便。最后也随着我的工作落实,这个项目也就暂且被搁置了。不过,也是在这段时间里,我学习了解了很多ERP及数据库设计上面的理论知识。我的动态菜单的设计理念就是在那个时候形成的,而且Excel版的动态菜单已经完成,不过由于Excel的特性问题,仅支持2003版本。

三、际遇

         2014年,我的工作越来越不顺心,让我想起了要重新换一份工作换一个行当,但是这对一个三十岁的人来说又谈何容易呢。古人常说“人过三十不学艺”,更别提我选择的软件行业是被人们认为是吃青春饭的行业。同年5月,一次偶然的机会,Foxtable再一次出现在了我的眼前(其实2012年我曾经看过狐表的介绍,并下载过试用版安装,可是因为当时认识浅薄加上工作太忙,后来就给淡忘了。),我重新拿起狐表的介绍认真拜读,也许是经过了一个项目开发的冥思苦想,我突然间发现狐表就是我多年想要开发的平台呀!然后,我又先后看到了天问、狐爸的人生经历,他们也都是非计算机专业出身,凭着对企业管理的理解与编程的热爱,果断地转行,最后取得了让人羡慕的成功。考虑到我工作至今换了那么多份工作,这对于我想重新去找一份新工作而言,那就是一个污点,而如果我自己能利用这份经历,把它转化成自己编写管理软件的经验来说的话,这就是我的资本。所以我毅然决然地下定了决心要转行做程序开发,狐表是我的不二选择。所以在接下来的日子里,我利用一切可以利用的空余时间来学习狐表帮助文件,我知道,我要想学好、利用好狐表的话就一定要把帮助文件熟读掌握。在学习的同时,我才发现,真的没有哪个软件的帮助文件可以做到如此详细体贴的,一个问题可以举一反三地以不同角度来说明。201410月,刚好公司有个内部招聘的机会,我又果断的从繁忙的生管工作转岗到了资讯部网管组,重新做起了老本行桌面支持。这样,我每天又多出来了很多时间来学习狐表。我一口气将狐表的帮助文档看了四遍,然后才开始打开狐表试用版开始写代码……。

四、启程

         20154月份,在我面前出现了一个机会,有狐友想找合伙人一起开发项目,我不顾亲友的反对(路远,怕是传销),毅然地辞去当前的工作,然后背井离乡独自一人去开始一段新人生旅途。对于我来说,这里就是我梦想开始的地方。狐表真正地让我从一个业余爱好者转变成了一个靠它吃饭的专职人员。也就是在这一次合作当中,我将我筹划了多年的框架开始逐步实现出来,而且实现的非常顺利。同样,为了让更多的狐友能够学习与享受框架带来的便利,也是为了支撑我的后续研发,我已经将此框架开源销售。因为是跟别人一起开发的项目,我在这里就将我自己研发的框架部分拿出来介绍一下吧。

         1.注册模块:

        特色:

         1.1试用需要软件作者发一个试用注册码!

         1.2试用注册码可以控制试用的次数、试用的天数,也可以同时限制使用次数与天数,如果任何一个到达使用期限都会无法登陆!当使用天数与次数都不设定时,即生成永久注册码。

         1.3试用码只能使用一次,第二次使用试用注册码时无法正常注册。

         1.4将所有密钥都统一成变量,方便开发者随时方便的更换密钥,以便达到不同客户、不同系统区别注册码的目的。

         1.5将所有人的注册记录都保留记录,以便得知用户是否有注册过。

         1.6提供单独的注册机。

(图4-1-1注册机算号器界面)

         1.7因为注册码中包含日期及限制的天数与次数,所以相同的电脑每次生成的注册码都是不一样的。

         1.8更是因为注册时间及限制天数及次数保存在注册码中,所以破解难度更高一点。

2.用户登陆部分:

特色:

         2.1.多数据源、多账套支持。

         2.2.数据源一次设置,其他的只要分发即可。如果遇到连接不上也不会卡死的情况。

         2.3.根据前面的数据连接配置文件,自动加载可以访问的数据账套!

         2.4.系统提供一个记住账号跟记住密码的功能。用户可以自由选择记住账号还是记住密码。

         2.5.默认以最后一次登陆的用户打开登陆界面。

         2.6.不想被别人知道使用此电脑登陆过系统可以删除登陆记录!

         2.7.根据登陆的用户可以启动不同的用户界面!

(图4-2-1用户登陆界面)

 

(图4-2-2数据源设置界面)

3.动态菜单模块

特色:

         3.1.拥有自己的菜单设计器,设计一处可以在“快速访问栏”,“配置栏”,“功能区”,“导航目录树”,“导航桌面”中多个地方实现全自动生成菜单。

         3.2.所有菜单都响应事件,这些事件都只要在菜单设计器里设计就可以,不用到狐表自带的系统中输入代码。这意味着可以发布后修改增加菜单功能!

         3.3.可以灵活地设置各个模块的显示状态。

         3.4.菜单生成代码,只需简单的一句话。

         3.5.菜单权限控制。

         3.6.当非“开发者”账号登陆时无法看到“开发设计”菜单。这里的开发者是指自定义用户角色中的“开发者”并非指狐表本身自带的开发者账号。一开始的jimmy.wang为开发者权限。

 

(图4-3-1菜单设计器常用功能介绍)

 

(图4-3-2菜单设计器支持自定义函数功能)

 

(图4-3-3菜单显示状态自定义模块)

 

4.用户及权限管理

特色:

         4.1.提供与人事系统对接的功能

         4.2.可以对自己的登陆账号进行修改!

         4.3.个人密码修改

         4.4.用户管理

         4.5.用户的角色管理:

         4.6.角色管理

         4.7.角色用户管理

         4.8.窗体权限设置

         4.9.敏感字段权限设置

(图4-4-1根据人事资料添加用户模块)


(图4-4-2根据已有角色给用户增加角色功能)


(图4-4-3新建角色给用户增加角色功能)

 

(图4-4-4新建角色及相应权限功能)

 

(图4-4-5用户已授权权限查询)

 

(图4-4-6窗口权限设置信息获取)

 

(图4-4-7窗口权限关联到菜单项)

 

(图4-4-8菜单下的窗口权限授权设定)

 

(图4-4-9单独窗体权限设定界面)

 

(图4-4-10添加用户到指定的角色当中)

 

(图4-4-11创建敏感字段并授予某角色访问权限)

5.灵活的界面设置

特色:

5.1.可以在系统选项中选择界面风格

5.2.支持左目录树导航、右目录树导航、目录导航、流程导航多界面切换

5.3.可以在开发时和发布后自定义流程导航,让您的菜单导航更具逻辑性

5.4.流程导航支持任意的流程效果设置。支持类Win7地址栏效果的当前位置显示与任意目录切换。

 

(图4-5-1灵活的菜单显示位置,图片为了展示各种菜单展示方式,所以显得有点乱

 

(图4-5-2灵活的界面风格设置)

 

(图4-5-3标签显示多窗体)

 

5.4.1在很多系统当中,每个操作之间都存在着相互联系,这时候,用流程图的形式展现系统菜单更能够让人明白系统之间的业务逻辑,操作也更方便、顺畅!比如说下面的效果:

(图4-5-4网上下载的效果图)

 

下面是仿制效果图,也许下面的图片看上去跟上面的图片效果不太一样,只是因为我没有去调整相应的图片及字体而已,理论上目前的设计是支持任何效果的。

(图4-5-5流程菜单仿制效果图)

 

5.4.2流程菜单的设计史无前例的简单。动画效果如下:

(图4-5-6流程菜单设计动画效果)

 

5.4.3.菜单切换更是简单明了,动画效果如下:

(图4-5-7流程菜单切换效果动画)

 

因为篇幅的原因,就不在这里一一展示了。有兴趣的朋友可以到我下面这个帖子中去了解更详细的内容。

【碾作尘】史上最完美、最合理的权限控制、最灵活的系统界面ERP系统框架(升级版)

我还有一个数据管理软件,详细的介绍可以到下面这个帖子中去了解。

【碾作尘】数据管理项目

五、展望

我的框架目前完成的只是一部分,接下来的才是框架的核心功能。下面是我要在接下来的时候里完成的模块。这些功能的构想也是我在前面框架的开发过程中,一边开发一边构思形成的。

1.服务器端软件:主要包含以下功能:返回准确的IP地址;自动编码;正版验证;工作流验证;计划任务(a.定时发邮件;b.定时执行SQL语句;c.定时执行存储过程;d.定时公告发布;e.定时提醒)

2.运行时,即狐表发布后可以动态窗口设计(简单有规律的窗口)界面设计部分已完成部分,有兴趣的朋友可以到下面这个帖子中去看看。

【碾作尘】最全的动态窗口知识集合展示(仿狐表窗口设计)

这个功能做好了可以让窗口设计的速度提升一个档次,届时会加入模板窗口的概念,一个模板窗口可以应用到所有窗口中,针对模板窗口修改可以应用到所有窗口中。动态窗口的所有信息保存在数据库中,一处开发好了之后,用户端无需升级,只需重新登陆或者点击一下刷新菜单就可以直接使用到最新版本,达到无感升级!(类似Web的效果呀有没有?)在这里再吹也没有用,等咱们东西做出来了之后再见。

3.Excel模板管理,通过SQL语句来生成Excel报表。SQL语句通过视图管理模块可视化生成(此模块已经基本成型)

4.OA工作流设计

5.发布后,运行时仍然可用的列属性功能。(只针对数据表设计,不针对已加载表)

6.通用进销存。(尽量做到真正的通用,结合上面的运行时功能,包含动态菜单、动态界面、动态权限、动态建窗体、动态建立Excel报表、动态建表、动态列属性……,可以完全基于发布后的版本开发简单的进销存,达到真正意义上的通用)

 

目前我已经专职在家里用狐表做软件开发,而家里人给予我的更多的是支持,因为我让他们相信我靠着它吃饭不仅没有问题,而且会比之前活得更好。我会在编程的道路上继续前行,追逐自己的梦想。我希望越来越多的人能看到狐表的优势,并加入到狐表当中,与狐表一起,茁壮成长……