您好,欢迎访问三七文档
SD-ERP开发平台业务处理类教程主要讨论项目中间层的数据流三个标准基类的介绍业务类与数据库通信方式业务类的设计和实现主要讨论项目中间层的数据流三个标准基类的介绍业务类与数据库通信方式业务类的设计和实现中间层的数据流结构体系图代理服务数据库简单业务类复杂单据类接口sdClassMgr.dllsdMidBase.dllsdServerBase.dllDcom服务器中间层的信息流基于TCP\IP的消息传递DCOM接口与前台进行数据交换中间层的数据流客户数据库数据集非绑定的数据传输方式当前对象中间层主要讨论项目中间层的数据流三个标准基类的介绍业务类与数据库通信方式业务类的设计和实现三个标准基类的介绍标准类TsdStandard单据头TsdHead单据明细TsdDetail三个标准基类的介绍ItemItemItemPHeadHeadHeadP1ItemItemp2ItemItemD2标准类单据类ItemItem三个标准类相同属性Index索引Key关键字值Bof置头标志Eof置尾标志Count记录数CurRecNo当前记录号BookMark书签FieldCount字段数Found查找返回标志FieldName[intindex]字段名DataType[intindex]数据类型ADOConnectionADO数据连接接口;DllApplicationTapplication对象三个标准类相同属性QueryString查询主语句FilterString过滤条件CurStatus记录状态DataComm数据和安全事务通信接口三个标准类不同的属性单据头比较丰富CurItemStatus明细行的状态ItemFieldCount明细行的字段数ItemFieldName[intIndex]明细中序号为Index的字段名称ItemDataType[intIndex]明细中序号为Index的字段的数据类型三个标准类共有的方法VoidAddNew()VoidInsert(intIndex)VoidEdit()VoidCancel()VoidMoveFirst()VoidMoveLast()VoidMoveNext()VoidMovePrious()三个标准类共有的方法VoidMoveBy(intLength)BoolLocateByIndex(intIndex)BoolLocateByKey(AnsiStringKey)BoolFindKey(AnsiStringKey)VoidAddRecord(void*Record,AnsiStringKey)VoidInSertRecord(void*Record,AnsiStringKey,intIndex)三个标准类共有的方法VoidDeleteRecord(AnsiStringKey)VoidRemoveRecord(intIndex)VoidChangeRecord(void*Record,AnsiStringNewKey,AnsiStringOldKey)Void*Records(intIndex)Void*RecordByKey(AnsiStringKey)三个标准类共有的方法VirtualvoidClearRecord()VirtualVoid*Assign(void*p)VirtualAnsiStringGetFieldValue(EnumTypeeuFieldName)VirtualVoidSetFieldValue(EnumTypeeuFieldName,AnsiStringValue),euFieldname是定义在sdEnumtype.h头文件里表示不同字段序号的枚举变量;三个标准类共有的方法VoidInitGlobalVar(AnsiStringCompanyCode,AnsiStringUserCode,AnsiStringFMonth,AnsiStringIMonth,AnsiStringPMonth,AnsiStringSMonth,AnsiStringMMonth,AnsiStringCMonth,AnsiStringMMonth,AnsiStringHMonth,AnsiStringCurrencyCode,AnsiStringTaxCode,AnsiStringCurDate,AnsiStringSysDate);初始化一些系统参数,财务月份,当前时间,系统时间;三个标准类共有的方法VirtualvoidUpdate();VirtualvoidDelete();VirtualboolFind(AnsiStringWhereStr);VirtualvoidExecute(AnsiStringParam);VirtualvoidBackupValue();VirtualvoidRestoreValue();三个标准类共有的方法TsdStandard(TDataComm*DC)TsdHead(TDataComm*DC)TsdDetail(TDataComm*DC)TsdStandard()TsdHead()TsdDetail()单据头所具有的方法voidFreeItem();virtualvoidRestoreItem();virtualvoidNewDetail();virtualvoidDeleteDetail();virtualvoidAddItem();virtualvoidInsertItem();virtualvoidEditItem();virtualvoidDeleteItem();单据头所具有的方法virtualvoidRemoveItem();virtualvoidClearItem();virtualvoidCancelItem();virtualvoidAddToObject();virtualboolLocateItemByIndex(intIndex);virtualboolLocateItemByKey(AnsiStringKey);单据头所具有的方法virtualvoidCheck(intIsCheck);virtualvoidBatchCheck(intIsCheck);virtualvoidClose(intIsClose);virtualvoidBatchClose(intIsClose);virtualvoidRevoke(intIsRevoke);virtualvoidBatchRevoke(intIsRevoke);virtualvoidTally(intIsTally);virtualvoidBatchTally(intIsTally);主要讨论项目中间层的数据流三个标准基类的介绍业务类与数据库通信方式业务类的设计和实现业务类与数据库通信方式TDataComm数据通信封装类ADO数据连接,使用OLEDB最简单的方法业务类与数据库通信方式数据库服务器DataModule数据模块TDataComm数据通信接口业务类1业务类2业务类n封装的消息传递类的功能作用数据通信的桥梁作用业务规则的检验师数据通信的桥梁作用负责与数据库的通信,向数据库发送SQL查询负责创建数据集,被动地把记录传送到客户端负责把客户端的数据传送到数据库,向数据库调用存储过程起到数据光标的作用业务规则的检验师根据前台要求,获取符合要求的数据前台传回来的数据进行业务规则校验数据类型的验证,合法性验证数据安全的保证ADO数据连接充分利用微软ADO技术,OLE自动化接口OLEDB封装了ODBC的功能代码中用try和catch来捕获ADO错误避开BDE的不方便前台通过DCOM接口进行数据交换应用服务器接受客户端的请求分配组件对象给客户端使客户端与应用程序取得联系前台所需求的数据通过调用组件对象接口函数获取前台要更新到数据库的纪录也通过组件对象调用接口函数与数据库打交道基于TCP\IP的消息传递进行多方通信应用服务器代理服务器客户端业务类的设计和实现明确处理对象,选择继承类理解数据表字段意义,发布类的访问属性实现虚拟函数功能对数据的校验和业务功能的处理实现注意的问题明确处理对象,选择继承类简单基础资料,独立表应选用标准类,如客户资料管理、销售员资料等复杂单据,需要主从表共同完成的业务就选用单据类,如订单、发货单等确定单头,则继承单据头基类,如订单单头明细表类,则继承于明细基类,如订单明细理解数据表字段意义,发布类的访问属性根据表结构和一些业务知识,确定属性的转换数据类型和读写类型数据类型的转换,一般地有Varchar-AnsiString,decimal-double,tinyint-int,Datatime-AnsiString等只读属性__propertyDataTypeFieldName={read=m_FieldName}可读写属性__propertyDataTypeFieldName={read=m_FieldName,write=m_FieldName}增加类的私有字段,m_FieldName,b_FieldName(备份)对数据的校验和业务功能的处理实现完成属性的赋值实现前台-后台调用SetFieldValue(enumTypesdFieldName,AnsiStringValue)注意数据类型转换类内部调用SetFieldName(DataTypeValue)对数据和业务的校验完成属性的取值实现后台-前台调用AnsiStringGetFieldValue(enumTypesdFieldName)实现虚拟函数功能VoidBackupValue()备份数据实现b_FieldName=m_FieldNameVoidRestorValue()恢复数据实现m_FieldName=b_FieldNameVoidQuery()实现数据表-数据集的转化VoidBatchLetValue()对类私有字段赋值实现m_FieldName=m_Query-FieldByName[“FieldName”]实现虚拟函数功能VoidEmptyValue()清空字段的值VoidUpdate()更新数据表增加记录,调用存储过程TableName_Insert修改记录,调用存储过程TableName_UpdateVoidDelete()删除记录,调用存储过程TableName_Delete实现虚拟函数功能VoidAssignValue()数据集-对象VoidAssign(void*Record)VoidExecute(AnsiStringParam)实现虚拟函数功能VoidCheck(intIsCheck)审核单据调用存储过程TableName_CheckVoidClose(intIsClose)结清单据调用存储过程TableName_CloseVoidRevoke(intIsRevoke)取消单据调用存储过程TableName_Revoke实现虚拟函数功能两种构造函数的实现和使用折构函数的实现注意的问题必须始终在代码中用try和catch来捕获ADO错误,否则ADO错误会使你的应用程序崩溃。当ADO发生运行时错误时(如数据库不存在),OLEDB数据提供者将自动创建一个_com_error对象,并将有关错误信息填充到这个对象的成员变量.类的注册
本文标题:业务处理类
链接地址:https://www.777doc.com/doc-1636850 .html