开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Delphi编程和OracIe数据库的物业管理商用软件开发范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
(无锡科技职业学院,江苏无锡214028)
摘 要:基于国家物业管理技术规范,就目前农贸批发市场物业管理中收费类型复杂多变的现状和需求.采用delphi编程和Oracle数据库技术,实现了可以自由设置人性化收费的通用农贸市场综合物业管理系统。该系统模块设计、结构灵活,便于与农贸市场电子结算系统集成。
关键词:数据库;Delphi;Oracle;物业管理;系统分析;系统设计
中文分类号:TP315 文献标识码:A 文章编号:1009―3044(2007)02-10043-03
1 引言
农贸市场管理主要是物业管理,货主进场交易就会涉及与物业关联的场地设备、租赁合同、附加合同、费用类型、计费、收费等与物业有关事项。由于费用类型繁多,计费周期和标准各有不同,使物业管理中传统的计收费工作变得繁重而复杂,而且还容易出现错收、漏收、重复收、欠费金额不准确等现象,造成经济损失和纠纷,如果能对各种计收费工作进行归类分析,形成一种通用的计收费框架,则可以为物业管理带来极大的便利,对提高行业的管理水平具有重要的意义,为此,本文设计并实现以通用的汁费模式为核心,可灵活处理各类计收费任务的综合物业管理系统。
系统开发工具选择开发语言采用Delphi6.0,操作系统采用windows2000/xp,后台数据库采用Oracle:系统软件平台使用LIN-UX,以提高系统的安全可靠性和系统运行效率。数据库平台采用数据库系统采用大型关系型数据库,系统的事务处理能力强,有很高的数据安全性。
2 系统总体结构分析与设计
2.1需求分析
综合物业管理系统主要解决的问题是根据承租人的租赁合同处理各种类型得应收费。我们通过对农贸市场物业管理中的应收费进行分析归纳后。发现可以将所有应收费工作分为4种类型:(1)周期性计收费:包括场地租赁费、设备租赁费、物业费、会员费等。这些费用得计费周期不一,承租人的计费标准不同,能否定义出一种灵活的框架,统一这类费用的计费处理,是完成收费通用处理的关键所在。(2)不定期收费:(3)一次性计收费:各种需要一次性计收的费用。这类计收费丁作既要对农贸市场中所有承租人按各种特征分批处理,还要能够进行单个承租人的修改。(4)预收费(押金):许多承租人会不定期缴纳不定数额的押金,需要对各承租人进行资金管理。
2.2系统功能分析
系统的开发设计以满足物业信息管理的总体要求,模块化的程序设计为目标,系统各种功能能组合、修改、扩展和维护,达到操作过程直观、方便、实用、安全等要求。采用了各个主档(包括设施主档、物业主档、承租人主档、附加合同主档、费用类型主档等)分开管理模式,通过租赁合同和收费进行关联,以报表查询方式对各个租赁合同、承租人收费的统计和查询,管理收费的操作。可以根据不同的条件实现内容查询,数据导出、报表打印等功能.提高物业管理的信息化管理效率、工作效率,从而提高其经济效益。系统提供相应的安全性和保密性措施。
2.3功能功能模块设计
综合物业管理息系统主要主档管理模块、租赁合同管理模块、收费管理模块、报表查询模块。
2.3.1主档管理模块。是综合物业管理系统中最基本的模块,负责管理整个综合物业管理系统中的一些基本信息,也是租赁合同管理和收费管理的一个数据来源和基础。该模块包括设备主档、物业主档、承租人主档、费用类型主档、附加合同主档的信息管理和维护。在物业主档维护中实现物业主档和设备主档之间的关联。
2.3.2租赁合同管理模块。是综合物业管理系统中的调控模块,是收费管理的基础。该模块主要是现实每个租赁合同的详细的合同信息数据维护。租赁合同管理要求每一个租赁合同号对应相应的费用、证照、附加合同,主档管理模块中各主档信息是租赁合同选择的项目,采用下拉列表的形式供用户自由选择。设计时必须注意租赁合同管理模块与各主档模块信息的同步,租赁合同管理模块与收费管理模块数据的协调。
2.3.3收费管理模块。收费管理是综合物业管理系统的核心,也是用户最常用最直接的界面操作。包括应收费用管理、缴费管理、实收费管理(了解承租人的缴费情况,进行相应的收费)、收费向导(供用户选择收费对象和收费的类型)四个功能。应收费用(计费)管理是用来管理每条租赁合同的计费数据,根据租赁合同定义的周期性计费、仪表类计费、一次性计费生成每个租赁合同的应收费用:缴费管理是对每个承租人每次缴费情况进行管理;实收费用是定期对承租人应该缴费的管理;应收费用向导是根据用户选择费用类型来确定承租人和租赁合同应缴费情况。具体的流程如图2所示。
2.3.4报表查询模块。包括应收费用报表查询、收费汇总查询。提供人性化组合查询方式,对查询数据可以导入到Excel中保存或者直接打印。
2.3.5用户登陆。包括一个用户名和密码进入综合物业管理系统,其操作记录将被记录在数据库日志表中。系统登录过程包括三个步骤:主程序的运行(系统初始化设置)、登录界面的运行(提供用户登录接口)及主界面程序的调用(进入工作界面)。
3 数据库设计
在对系统功能分析的基础上,建立各主档数据表作为基础数据,租赁合同合同表为核心数据,应收费(计费)表为目标数据,实现物业的收费。数据库结构如图3所示。
4 系统数据流图设计
根据业务流程结合系统功能、模块的设计和对数据存储的要求,系统数据流图如图4所示。
5 关键问题处理方法
5.1租赁合同管理模块与各主档模块和收费管理模块信息的同步
租赁合同管理对承租人的租赁合同进行增、删、改、查。新增时根据赁合同要求选取应各主档信息。确定所对应的物业、设备、租赁费用类型、需要缴纳费用及租赁合同中有哪些证照和附加合同。
在租赁合同中维护中当点击保存按钮的事件时.如是“新增”,按租赁合同选取各主档信息,如主档信息需更正,则将所有数据保存到相应的数据表的同时,修改主档信息;如是“删除”,则要判断收费模块中应收费用表中费用是否已缴清,否则不能删除;如是“修改”,则首先判断租赁合同号是否修改过。如修改了则要把费用清单、证照管理、附加合同对应的关联表中的租赁合同号作同步修改;其次判断费用编号在应收费用表中是否存在,如不存在这条记录要插入到应收费用表中。所有数据表中租赁合同号唯一。
5.2费用项属性设计
在费用类型主档管理中采用费用项属性设计,它是应收费用管理的关键。(1)费用名称。可以任意定义和增删,在有应收费记录后不能随意修改;(2)收费周期。包括一次性、定期(一月、一季、半年、一年等)、不定期,该属性包含综合物业管理中所有可能的周 期,每种费用可根据情况灵活选取各自的周期;(3)费用价值;(4)计算公式,包括:费用价值+周期,固定价格等。这种设计覆盖了综合物业管理中全部收费项目。
5.3应收费用功能实现
应收费用是按照租赁合同的租赁合同表和费用类型表自动生成应收费清单。要考虑的是应收费用的结算时间与当前的系统结算时间不一致时数据处理的问题。设计程序把字段控件作为一个单独的Panel控件,在每次窗体加载时判断一下该记录的系统结算时间是否在当前系统结算时间之前,如果是使其Panel的Enabled属性设为false。
对于数据的检索采取需查询SQL的语句写在Query中.具体的操作代码如下所示:
procedure TfmPayableList.FormCreate(Senden TObiect);
const
SQL TEXT=’select*from ZACBA02_PAYABLE’:
SQLLEASE=’select*from ZACBA01_LEASE’;
begin
DataMD.qrypayable.SQL.Text:=SQL_TEXT:
DataMD.qryLease.SQL.Text:=SQL_LEASE;
DataMD.qrvpavable.Ooen:
DataMD.qryLease.Open;
DataMD.qryFeetype.Open;
DataMD.qryRenter.Open;
end;
5.4收费向导做到人性化处理应收费用
收费向导主要是让用户实现人性化手动地选择收费日期、收费金额、费用名称、收费对象来生成应收费清单。其中费用名称为一个下拉的列表,收费日期调用数据模块的系统结算时间:Fee-Date.DateTime:=DataMD.GetSLIPDate
选择好条件以后点击下一步。其中对于不同的收费对象所选择的数据插入源是不一样的。一般通过SQL语句SQL_TEXT=′se-lect*from ZACBA01_LEASE where ZACBA01一MTNTYP
特别是手动选择收费对象时,要根据费用名称判断收费类别。采用四个函数来处理不同的费用费用类型:
function TfmFeGuide.checkfeetype(feetype:string):boolean;
begin
case strtoint(feetype)of
1:Result:=once;
2:Result:=put;
3:Result:=unput;
4:Result:=deposit;
end:
end:
如是一次性费用则:
function TfmFeeGuide.once:boolean;
const
SQL_TEXT=′select*from ZACBA02_PAYABLE where ZA-CBA02_LEASEID=′′%PassLease%′′and ZAC-BA02_FEEID=′′%PassFeeID%′′and ZACBA02_MTNTYP
var
aSql:string;
begin
aSQL:=AnsiReplaceStr (SQL_TEXT,′%PasLeaseID%′,PasskaseID);
aSQL:=AnsiReplaceStr(aSQL,′%PassFeeID%′,PassFeeID);
DataMD.qryTmp.SQL.Text:=aSQL;
DataMD.qryTmp.Open;
if DataMD.qryTmp.IsEmpty then
begin
Result:=true;
end
else
begin
Restllt:=false;
end:
DataMD.qryTmp.Close;
end:
如是定期收费则:
funetion TfmFeeGuide.out:boolcan;
const
SQL DATE=′select max(ZACBA02_DATE) from ZAC-BA02_PAYABLE where ZACBA02_LEASEID=′′%kaselD%′′and ZACBA02_FEElD=′′%FeeID%′′and ZAC-BA02_MTNTYP
var
aSql:string;
daycount,spaceday:integer;
Stime,Etime:TDatetime;
begin
aSQL=AnsiReplaceStr(SQL_DATE,′%kaseID%′,PassLea-seID);
aSQL:=AnsiReplaceStr(aSQL,′%FeeID%′,PassFeelD);
DataMD.qryTmp.SQL.Text:=aSQL;
DataMD.qryTmp.0pen;
Stime:=FeeDate.DateTime; Etime:=DataMD.qryTmp.Fields[0].AsDateTime; daycount:=Delav*24:
spaceday:=DaysBetween(stime,Etime);if spacedav>=daycount thenbegin
Result:=true;end
else
begin
Result:=false;
end:
DataMD.qryTmp.Close:
end:
通过以上的数据筛选得到可以收费的租赁合同。然后再将收费数据插入到应收费用表中具体代码如下:
while not FeeGuidekase.Eof do begin
//获得合同编号
PassIJeaseID:=FeeGuideLaseZACBA01_lD.AsString;
if checkfeetype(feetype)=true then
begin
DataMD.qrypayable.Apoend:
DataMD.qrypayableZACBA02_LEASEID.AsString:=FeeGuide-LaseZACBA01_ID.AsString;
DataMD.qrypayableZACBA02_FEEID.AsString:=FEEID;
DataMD.qrypayableZACBA02_FEETYPE.AsString:=FEETYPE;
DataMD.qrypayableZACBA02_SLIPDATE.AsDateTime:=DataMD.GetSLIPDate;
DataMD.qrypayableZACBA02_DATE.AsDateTime:=FeeDate.DateTime;
DataMD.qrypayableZACBA02_AMNT.AsCuency:=AMNT;
DataMD.qrypayableZACBA02 MTNTYP.AsString:=′O′:
DataMD.qrypayableZACBA02_GENDATE.AsDateTime:=DataMD.GetSvsTime;
DataMD.qrypayable.Post;
end:
FeeGuideLease.Next;
end:
openFeeGuideListForm;
end:
end:
close;
end:
这样就得到应收费信息列表,进入该列表还可删除新增收费项目,完全做到人性化收费。
6 结束语
本系统主要将一个大型农产品批发交易市场中由人工管理的物业转换成由计算机管理的一整套合理规范的物业信息化管理系统。使得本来繁琐的合同管理信息化,收费变得简单方便、准确、自动化,它所提供的强大的查询和数据导出功能更使用户在操作的过程中更轻松方便。该系统在南通天一农产品批发市场投入使用后,提高了工作的效率。具有推广实用价值。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。