



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除M99家庭财账管理软件 软件说明文章最后保存日期:20-4-3前言:我们是pioneer studio的主要成员,决定开放M99的源代码。在编制家庭财账软件的过程中,我们曾经碰到过很多的挫折,现在展示在大家面前的这个作品也只是一个试验性的作品,离真正的使用还有很大的距离。我们的目的有以下几点:1. 对于delphi编程有兴趣的朋友可以通过这样的方法来加入到我们的开发小组,最终我们可以一起制作出质量较高的软件。2. 可以帮助刚刚开始学习编程的朋友们,少走一些弯路,为他们自己的程序提供一些思路。3. 提高整个中国共享软件、自由软件的水平。前些日子有一个家庭财账管理软件外界炒作的比较厉害,它的注册费用是50元,太贵了。(最近看到该软件可以免费注册,因为不清楚具体情况,不作评论)。大家应该知道“红色风暴”,如此高质量的软件只买28元。我们想通过自由软件的一些开发模式和开放源代码的方法来使我们现在这个还很幼稚的软件慢慢强大。我们不会依靠买软件来赚钱,如果我们要赚钱,也是通过服务。主要编程思路:我们发现理财软件主要还是和数据库打交道,所有的操作归根结底都是对数据库的操作。我们用的是delphi,它对于数据库的操作功能还是很强大的,并且delphi的开发环境和其强大的功能可以说是windows开发平台中第一流的。本来我们想用类似于eport小组在“网页作坊”中用的插件技术,后来我们放弃了这个想法,首先这样开发的工作量比较大,第二作为插件的开发者开始需要懂delphi,并且思路要完全符合我们制定的插件规范。我们现在的实现思路是这样的:1 对于基本的操作,指不涉及到除了主窗口以外的任何窗口,我们有一套经过抽象过的内部函数来组合完成这些操作,诸如打开数据库、状态栏显示信息和计算收支情况等。2 对于涉及到外部窗口的操作,有一套相对应的函数用来显示这些窗口和进行相应的处理,诸如显示输入窗口、显示查询窗口和完成查询操作等。以上两点大致的介绍了一下。下面继续介绍使用到的主要技术。软件整体结构:由于我们想通过比较好的程序结构达到较强的功能,特别考虑了分布式开发的情况,可以这么说,本程序的结构比较怪,但是你理解了之后,就可以明白我们的苦心了。主程序main负责最主要的界面工作,包括生成所有运行时刻的按钮,将它们的功能挂入接口中。所有的数据库控件、数据表格控件都在main的上面。辅助单元yytools.pas主要负责解释所有我们称之为yy脚本的按钮要完成的实际动作,其中还包括一些内部使用的函数。Yytools有点像中间件的作用,它负责将yy脚本语言中的命令行部分(脚本语言中还有界面行部分)解释为实际的数据库操作。等到我们的sql解释器完成之后,yytools的作用就更大了。脚本语言。每个在主窗口上的按钮都有一个脚本语言。我们目前的设计是按钮和脚本语言一一对应,以后如果功能增加了,可以考虑菜单和脚本语言的对应关系。脚本语言的规范在后面有专门说明。脚本语言是用notepad写的普通的文本文件,其中调用到的就全部是yytools中的函数。我们还在扩充脚本,以便实现新的功能,同时由于兼容性的问题,我们也有可能修改以前的脚本。目前的脚本还缺乏可编程性,不过我们将尽量增加可定制性的设计,做到因人而异。专用窗口。目前,对于输入、查询、帮助、关于有自己专用的窗口。我们设计了一套规范来完成各个独立的窗口和主程序也就是mian、yytools之间如何传递数值的规范,因此这些专用的窗口的设计只要在符合规范的前提之下,就可以随心所欲发挥了,并且可以几个功能一起开发,我们在原则上不允许修改开发专用窗口的开发者修改main和yytools,窗口的挂入和一些特殊的处理需要在主窗口程序中改动的,那么就由写main和yytools的开发者负责维护。主要技术:A. YY脚本语言。我们可以在本软件中找到一个buttons目录,在这个目录里面,就是我们在主窗口内看到的所有按钮。这些按钮的功能就是由这些我们称之为yy脚本语言的script来完成的。后面有详细的yy脚本语言的规范,和其中调用到的函数说明列表。我们想通过这样的办法,来逼得自己程序模块化。在开发过程中,我们切身体会到了这样做给我们带来的好处。很多时候,我们只要调整yy脚本语言,就可以修改和完善功能,这样的工作只要在notebook中就可以完成了。另外一些时候,我们修改了相应的脚本语言的解释器,于是这个按钮的功能就得到了提高。要说明的是,这个脚本语言是很不完善的,甚至它只能顺序执行,还称不上语言。By the way,之所以取这个名字,是因为我们两位主创人员的姓第一个字母都是y。B. 本地数据库。Delphi的数据库操作之所以强大是因为bde,但是bde带来的麻烦也不少。所以我们用了一个控件,可以完全替代ttable的功能,几乎没有什么特性上的损失,并且我们不再需要bde的包袱。它的全称是:HALCYON Ver 6.0。C. 数据表格。我们没有用delphi自己带的grid,因为给它增加功能太麻烦。在delphi的表格控件中,advstring grid是很有名的。我们现在的程序还只用到了一点点它的优秀功能。D. RX控件。有前苏联的高手编制的rx控件功能强大,并且开放源代码。我们在程序中用到了它的金额输入控件,在以后的版本里,还有可能用到其中别的控件。E. 字符串处理函数包。如果你用过jbstr这个字符串函数包之后,你会发现很多事情变得轻松了。这个函数库是一个叫做J.BENES的人写的,以dll的形式发行,所以可以用在很多语言中。同样,它也带有源代码。F. Express Grid。如果你以前知道一个叫做 的站点,我就是从那里找到express grid这个控件的。怎么说,它都是一个很出色的电子表格控件,尤其是它的数据分析功能。G. 数据文件加密单元。我们用一个叫做Encryprit的单元文件来完成我们的加密工作。对于数据库文件打开和关闭的操作,一定要通过我们的函数,ydOpenDB 和 ysCloseDB,它们会完成加密和解密工作。这样带来的问题是对于调试比较困难,你要另外察看数据库的内容、或者对其进行修改,就比较麻烦。解决的办法是屏蔽在ydOpenDB 和 ysCloseDB的数据库加密和解密语句。如何安装和编译m99的代码:首先你要将相关的控件正确安装在delphi环境之下。我们用的是delphi 4,如果你的delphi版本低于4,那么你要升级了。对于delphi5,从理论上来说也可以,不过需要修改一些控件的源代码,稍微复杂了一些,因此这里就不展开讨论了。以下为本软件用到的控件可以下载的地方: 。我们最近的工作比较忙,因此这部分的内容可能大部分delphi爱好者会觉得比较糊涂,在以后的文档内,我们将向大家详细描述每一个我们用到的控件的下载地址和安装方法。如果控件安装正确了,你可以建立一个目录,然后将源代码复制到这个目录中,注意保留源代码中的目录结构。否则会导致程序执行时候发生错误。在条将成熟的时候,我们将会提供有关的光盘,包括我们的源代码、开发资料、所有相关的控件资料、大量优秀的delphi编程控件和资料、delphi4开始的各个版本delphi的官方补充资料、帮助制作软件、安装制作软件和补丁程序制作软件等。目前的功能设计和以后的构想:现在的功能实在是太简单了,不过我们觉得这只是一个框架,我们将能很方便的扩充功能,同时等到我们的yy脚本语言日趋成熟之后,扩充功能将是一件相对而言比较简单的事情。我们的版本号中,最后一位是build的数字,表示小的功能增加或者错误修正,第三位数的增加表明比较大的功能加入,第二位数字增加表明有结构上的重大调整或者很多大的功能的加入。A. 准备在近期增加的主要功能有:1. 储蓄项目管理。虽然现在已经开始征收利息税了,可是对于很多人来说,把钱存在银行里仍然是一个安全的模式。2. 证券资金管理。证券市场变化多端,计算目前的资金运作情况是很有必要的。3. 对现有功能的完善.。比如打印、报表等。B. 技术上新的探索。1. 由于ttable并不具备sql的能力,在delphi的标准数据库开发工作中,这是由tquery来实现的。所以我们准备在yy脚本语言中增加一个自己编写的简单的sql解释器,为了让我们的操作变得简单。等到标准的查询窗口也可以由用户完全定制后,对数据库进行如何的操作,得到怎么样的结果,就完全是自由的了。2. 通过tcp/ip和internet连接的功能。这样首先是我们想为软件的升级考虑,其次是通过网络得到某些信息,具体的内容还没有完全设计好。实现上面的这些特性需要比较长的时间,我们现在在做的是在意用性上的提高。yytools函数一览表:function InitYoYo: integer; /初始化function ysCloseApp: integer; /关闭应用程序function ysCopyFile(s: string): integer;/复制文件procedure ysShowAbout; /显示关于窗口procedure ysShowHelp; /显示帮助窗口procedure RewriteLog; /建立日志文件procedure AppendLog(s: string); /写日志文件procedure yiShowDB(source: string);/在电子表格中显示数据库的内容procedure yiShowInputWindow(s: string); /显示编辑单条记录窗口procedure yiShowQueryWindow; /显示编辑单条记录窗口procedure yiShowStatus(s: string); /在状态栏显示信息procedure ydOpenDB(dbType: integer);/打开数据库procedure ydCloseDB(dbType: integer); /关闭数据库procedure ydAssignDB(dbFileName: string);/关联数据库procedure ydGetBottomID; /获得最大的编号procedure ydAppendRecord;/追加记录procedure ydSaveRecord; /指定存盘procedure ydEditRecord; /修改指定的记录procedure ydDelRecord; /指定ID删除procedure ydCalShouRuZhiChu; /查询收入和支出procedure ydGenMid(s: string); /生成中间数据库procedure ydCopyMoney2Mid; /将整个money数据库复制成为中间库procedure ydQueryProcess; /完成查询的具体操作function Query_TypeCondition(pCondition, pType, pSubType, pTypeValue, pSubTypeValue: string): integer; /查询条件-金额限制判断function Query_MoneyCondition(pCondition: string; pMoney, pMax, pMin: Double): integer;function ydRecordCount(t1: THalcyonDataSet): integer; /计算一个数据库中的记录条数procedure ysDelFile(fDel: string);/删除一个指定的文件procedure ysEncrypt(f1, f2: string);/加密一个文件procedure ysDeCrypt(f1, f2: string);/解密一个文件yy脚本结构例子:append.yy1新增 /按钮的caption内容new.bmp/显示出来的图片文件新增一条记
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力生产质量培训
- 文化遗产保护项目2025年资金申请政策解读报告
- 高压安全技术操作考试题及答案
- 文化旅游产业与创意产业融合的2025年资金申请报告
- 工商银行2025绍兴市数据分析师笔试题及答案
- 邮储银行2025三沙市笔试英文行测高频题含答案
- 2025年3D打印技术的快速成型制造研究
- 邮储银行2025淮北市秋招群面案例总结模板
- 2025年3D打印技术的创新应用领域
- 建设银行2025来宾市秋招笔试英语题专练及答案
- 2025年二级建造师实务科目考试模拟题及答案
- 阳光体育大课间知识培训课件
- 四川省绵阳市涪城区绵阳南山中学2025-2026学年高三上学期开学英语试题(含答案无听力音频有听力原文)
- 神经干细胞课件
- 核能质保监查员考试题及答案
- 青海“8·22”川青铁路尖扎黄河特大桥施工绳索断裂事故案例学习安全警示教育
- 9.3纪念抗日战争胜利80周年阅兵式观后感
- 2025年70周岁以上老年人换长久驾照三力测试题库(含答案)
- 人才匹配算法的优化
- 兵团普通职工考试试题及答案
- 家庭劳动教育的制度性困境与教育主体重构研究
评论
0/150
提交评论