为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

医药进销存系统详细设计说明书

2017-11-14 43页 doc 164KB 37阅读

用户头像

is_591137

暂无简介

举报
医药进销存系统详细设计说明书医药进销存系统详细设计说明书 第 1 页 共 38 页 目 录 目 录 第1章 引言..................................................................................................................................... 4 1.1. 编写目的 .............................................................................
医药进销存系统详细设计说明书
医药进销存系统详细设计说明书 第 1 页 共 38 页 目 录 目 录 第1章 引言..................................................................................................................................... 4 1.1. 编写目的 ........................................................................................................................... 4 1.2. 参考资料 ........................................................................................................................... 4 1.3. 定义................................................................................................................................... 4 第2章 系统结构............................................................................................................................. 5 2.1. 系统体系结构 ................................................................................................................... 5 2.2. 系统运行环境 ................................................................................................................... 5 2.3. 系统开发环境 ................................................................................................................... 5 2.4. 数据访问方式: ............................................................................................................... 5 2.5. 开发辅助工具列表 ........................................................................................................... 5 第3章 程序系统的结构................................................................................................................. 7 3.1. 目录结构: ....................................................................................................................... 7 3.2. 子系统结构 ....................................................................................................................... 7 3.3. 子系统编码表: ............................................................................................................... 7 第4章 权限管理............................................................................................................................. 8 4.1. 数据库设计 ....................................................................................................................... 8 4.2. 功能设计说明 ................................................................................................................... 8 4.3. 权限明细列表 ................................................................................................................... 8 第5章 报表管理............................................................................................................................. 9 第6章 代码规则........................................................................................................................... 11 第7章 参数管理........................................................................................................................... 12 第8章 第三方控件说明............................................................................................................... 13 第9章 公用接口程序设计说明................................................................................................... 14 9.1. 窗体类继承关系 ............................................................................................................. 15 9.2. TPKForm ......................................................................................................................... 15 9.3. TPKMainform .................................................................................................................. 16 9.4. TPKChaXForm ................................................................................................................ 17 9.5. TPKChaZForm ................................................................................................................. 18 9.6. TDM ................................................................................................................................. 19 9.7. 全局变量声明单元:uPublic......................................................................................... 20 9.8. 常量定义单元:uConsts ................................................................................................ 20 9.9. 操作员类 (TCaoZY) ...................................................................................................... 20 9.10. 报表管理类类 (TRpt) .................................................................................................. 23 9.11. 报表打印类 (TfrmReport) ........................................................................................... 24 9.12. 公用对话框:uDialogs ................................................................................................ 25 9.13. 数据库连接参数类TDBConn ..................................................................................... 25 2 第 2 页 共 38 页 9.14. 参数类TParams ........................................................................................................... 26 9.15. 公用变量类TPubVars .................................................................................................. 27 9.16. 代码类TCodes ..................................................................................................... 27 9.17. 用户登录窗体 (TfrmLogin) ........................................................................................ 28 9.18. 修改密码窗体 (TfrmChangePass) ............................................................................... 30 9.19. 选择界面风格窗体 (TfrmSkinSelect) ......................................................................... 31 9.20. 关于窗体 (TfrmAboutBox) ......................................................................................... 31 9.21. 动态链接库公用函数和过程 ....................................................................................... 31 9.21.1 Pankudll.DLL ....................................................................................................... 31 9.21.2 PKCommon.DLL ................................................................................................. 35 第10章 附件................................................................................................................................. 38 3 第 3 页 共 38 页 第1章 引言 1.1. 编写目的 该说明书为系统详细设计的说明,其主要目的是: , 详细定义系统整体设计框架及系统结构及设计各子系统的开发; , 作为开发人员之间对研发产品共同认识的基础; , 定义各子系统、系统接口及接口结构; , 开发及维护的技术和文献依据; , 作为系统验收及测试的文献依据; , 本说明书作为软件公司研发人员讨论的依据和结论的记录; , 本说明书同时可作为 公司软件测试及结题的参考。 1.2. 参考资料 GB/T 11457 软件工程术语 GB8566-1995 计算机软件开发规范 GB 8567-1995 计算机软件产品开发文件编制 GB/T12504 计算机软件质量保证规范 GB/T12505 计算机软件配置管理计划规范 1.3. 定义 [无] 4 第 4 页 共 38 页 第2章 系统结构 2.1. 系统体系结构 客户机/服务器模式(Client/Server) 2.2. 系统运行环境 数据库操作系统: Windows 2000 Server 数据库服务器:Oracle 8.17 Enterprise 客户端操作系统:Windows 2000 Professional、Windows XP Professional 2.3. 系统开发环境 数据库操作系统:Windows 2000 Server 数据库服务器:Oracle 8.17 Enterprise 开发工具:Delphi 7.0 开发用机操作系统:Windows XP Professional 2.4. 数据访问方式: 考虑到客户机系统的安装、配置和可维护性各方面的要求,应用程序中 与数据库系统的数据访问不采用Delphi中的BDE、ADO、DBExpress来实 现,而是采用第三方控件ODAC 5.0来实现。(ODAC是Core Lab.开发的第 三方控件,采用OCI方式与Oracle进行数据访问,采用ODAC开发的应用 程序客户端不需要安装Oracle的客户端,也不需要安装Delphi的BDE等数 据引擎) 2.5. 开发辅助工具列表 1 配置管理工具:Visual SourceSafe 6.0c 2 数据库设计工具:PowerDesigner 9.5 3 数据库管理辅助工具:PLSQL Developer 5 4 项目管理:Microsoft Project2003 5 流程图绘制工具:Microsoft Visio2003 5 第 5 页 共 38 页 6 文档编制工具:Microsoft Office 2000(或Microsoft Office 2003) 6 第 6 页 共 38 页 第3章 程序系统的结构 3.1. 目录结构: 3.2. 子系统结构 3.3. 子系统编码表: 子系统编码表信息存储于“标准代码”数据表中,代码编号为:1101 7 第 7 页 共 38 页 第4章 权限管理 系统采用系统统一权限编码的方式进行权限管理。各子系统中每一个功能权限进行惟一编码,对用户的授权精确至每一个权限编码。同时,系统支持权限分组管理,便于对用户进行批量授权管理。 4.1. 数据库设计 系统数据库设计如下图所示: 权限明细权限分组组权限明细 权限编号VARCHAR2(4)组编号VARCHAR2(4)组编号VARCHAR2(4)权限名称VARCHAR2(40)组名称VARCHAR2(40)权限编号VARCHAR2(4)子系统编号CHAR(2)说明VARCHAR2(100)Pk_ZuQXMX子系统名称VARCHAR2(20)Pk_QuanXFZ权限说明VARCHAR2(100) Pk_QuanXMX 操作员信息操作员权限操作员权限组 操作员代码VARCHAR2(4)操作员代码VARCHAR2(4)操作员代码VARCHAR2(4)操作员姓名VARCHAR2(20)权限编号VARCHAR2(4)权限组编号VARCHAR2(4)人员编号VARCHAR2(6)PK_CaoZYQXPK_CaoZYQXZ密码VARCHAR2(20)启用NUMBER(1) PK_CaoZYXX 4.2. 功能设计说明 权限管理相关功能设计说明参见文档《Smart代码管理设计说明书》 4.3. 权限明细列表 序号 权限编码 子系统编码 子系统名称 权限名称 权限描述 1 1 1001 10 通用 用户登录 2 2 1002 10 通用 修改密码 3 4 4 5 5 6 6 8 第 8 页 共 38 页 第5章 报表管理 报表定义清单如下: 序号 报表编码 子系统编码 子系统名称 报表名称 报表描述 1 1 1001 药品购进记录 GSP 2 2 1002 药品入库验收记录 GSP 3 4 1003 批发销售记录 GSP 4 1004 出库复核记录 GSP 5 1005 出库退回记录 GSP 6 1006 入库退货记录 GSP 7 1007 药品购进计划 GSP 8 1 1008 药品养护记录 GSP 9 1009 近效期药品催销表 GSP 10 1010 仓库灭鼠记录 GSP 11 1011 设备检修保养记录 GSP 12 1012 温湿度记录 GSP 13 1013 仓库设备目录 14 1 1014 购进计划单 15 1015 库存信息 16 1 1016 收款工作日报 17 1017 操作员收款记录 18 1018 库存盘点表 19 1101 客户档案 20 1102 供货商档案 21 1103 药品档案 22 1104 收款单 23 1105 付款单 24 1201 空盘点表 9 第 9 页 共 38 页 25 1202 药品销售统计-客户 26 1203 药品销售统计-业务员 27 1204 药品销售统计-品种 28 1205 药品销售统计-操作员 29 1206 药品流向分析 30 1207 药品库存限量 31 1208 药品库存报警 32 1301 入库明细查询 33 1302 入库退货明细查询 34 1303 销售明细查询 35 1304 销售退货明细查询 36 1305 货位调拨明细查询 37 1306 购进冲价明细查询 38 1307 批号效期修改查询 39 1308 出库单重打查询 40 10 第 10 页 共 38 页 第6章 代码规则 代码规则用以约束系统中用到的统一代码的管理,以下简称“代码管理”。注意:只管理系统中基本不发生变动的代码,如:出入库类型、状态参数等等。对于用户数据中的基础数据,例如:配棉别、品种编码等,则不属于代码管理的范畴,属于系统基础数据,在系统基础编码维护中进行管理。 代码管理采用类TCode进行管理。其属性和方法如下: 代码列表如下表所示:(代码编号前两位为子系统编号,后两位为序号) 子系维护 编号 名称 中文名称 类型 内容 统 11 第 11 页 共 38 页 第7章 参数管理 统一参数类和参数的数据管理,参数类TParams参见<公用接口程序设计说明>参数列表如下: 子系统 参数名称 描述 取值及内容 10 CaiDKZFS 菜单控制方式 ‘0’:控制菜单的Visibled ‘1’:控制菜单的Enabled 13 13 13 14 14 12 第 12 页 共 38 页 第8章 第三方控件说明 为统一系统所使用的第三方控件及其版本,减少因控件版本不一致而对系统 开发造成的影响,本系统中对第三方控件的使用作如下要求: 1. 未经允许,不得在任何模块中使用本列表以外的其它任何第三方控件。 2. 列表中的控件必须从配置管理服务器中取得,不得从网上或其它途径取得该控件的其它版本。 3. 控件列表如下: 序号 控件名称 版本 控件用途 1 EhLib 4.0 用于数据一览时显示数据表格 DBGrid 2 FastReport 3.0 用于报表打印与设计 3 ODAC 5.0 用于与Oracle的数据访问 4 VclSkin 2.62 界面控件 5 KbmMemTable 内存表控件 4. 控件目录:控件均位于VSS服务器中的VCL项目中。 13 第 13 页 共 38 页 第9章 公用接口程序设计说明 系统公用程序单元如下表所示: 文件名 程序模块名 模块标识符 特征 简要说明 uPKForm 窗体基类 公用 窗体基类 uPKMainform 主窗体基类 公用 主窗体基类 uPKChaXForm 浏览窗体基类 公用 各类数据查询采用该窗体 uPKChaZForm 查找窗体基类 公用 查找各类数据时采用该窗 体 uDM 数据模块 公用 公用数据模块 uPublic 全局变量声明 公用 声明系统全局变量和和函 数 uConsts 常量定义单元 公用 常量义单元 uCaoZY 操作员类 公用 操作员类定义单元 uRpt 报表管理类 公用 用于管理报表与数据库之 间的存取操作 uReport 报表打印类 公用 实现报表的打印、报表格式 设计 uDialogs 对话框单元 公用 对话框类说明 uDBConn 数据库连接类 公用 定义数据库连接参数 uParams 参数类 公用 定义系统参数类 uPubVars 公用变量类 公用 定义系统全局变量 uCodes 标准代码类 公用 定义系统标准代码类 uAboutBox 关于窗体 公用 系统关于版权信息窗体 SkinSelect 界面风格选择 公用 窗体界面风格选择 Login 系统登录 公用 用于用户登录身份验证 ChangePass 修改用户密码 公用 修改用户密码 14 第 14 页 共 38 页 9.1. 窗体类继承关系 本系统中窗体类关系如下图所示: TForm 继承TPKForm 各模块窗体 继承 TPKMainform 继承各子系统主窗体 TPKChaXForm 继承各数据浏览窗体 TPKChaZForm 继承各数据查找窗体 9.2. TPKForm 窗体基类,SmartERP中所有窗体必须从该窗体继承。 用途 统一系统中所有窗体的公共属性和方法 单元名 Public\UPKForm.pas 属性 名称 类型 描述 约束 Fonts Tfonts 字体,统一系统窗体字体为宋体 五号字 方法 方法1 调用参数与类型 返回参数与类型 处理逻辑 算法说明 15 第 15 页 共 38 页 。。。 9.3. TPKMainform 主窗体基类,各个子系统中主窗体从该窗体继承。TPKMainform继承自TPKForm。 用途 统一系统中各个子系统主窗体的公共属性和方法 单元名 Public\uPKMainForm.pas 属性 名称 类型 描述 约束 MainMenu1 TMainMenu 主窗体中主菜单控件 SkinData1 TskinData 界面皮肤控件,用于界面美化 ActionManager1 TactionManager 用于控制和管理该子系统中所 有Action ToolBar1 Ttoolbar 工具栏 StatusBar1 TstatusBar 状态栏 方法 ShowMenu 描述 用于根据登录用户MyCaoZY的权限信息和系统 参数信息刷新ActionManager1中各个Action 的权限,从而达到权限控制的功能 调用参数与类型 MyCaoZY 返回参数与类型 无 算法说明 从MyCaoZY中取得该登录用户的权限列表,遍 历ActionManager1中各个Action,将其Tag 与MyCaoZY.QuanX中列表进行对比,若用户权 限中存在该权限,则根据系统参数中 DisplayMenuMode参数禁用该Action或隐藏该 Acton Init 描述 主窗体初始化过程,用于创建初始对象 调用参数与类型 TDBConn,TDM,TCaoZY, TPubVars 返回参数与类型 算法说明 ,(创建对象MyDBConn,从配置文件中读 取数据库连接配置信息 ,(根据连接信息创建DM对象,打开数据 库连接 ,(创建用户对象MyCaoZY,进行用户身 份验证 ,(创建公用变量对象,并进行初始化, 获得公用变量和值,调入界面风格 Relogin 描述 调用系统登录窗体,进行用户身份验证 调用参数与类型 TfrmLogin 返回参数与类型 16 第 16 页 共 38 页 算法说明 身份验证通过,则获得操作员对象值,否则退 出系统 FindChild 描述 查找是否存在该类型的对象(子窗体) 调用参数与类型 FName: TClass 返回参数与类型 Integer,-1:不存在,>=0,找到,返回其编号 算法说明 ShowChildForm 描述 用于创建并显示MDI子窗体 调用参数与类型 FName: TformClass 返回参数与类型 算法说明 ,.如果该类子窗体已经存在,则不创建,直接 显示 ,.如果该类子窗体不存在,则创建,并显示。 9.4. TPKChaXForm 1.窗体设计 2.类设计 用途 数据浏览窗体基类,用于统一数据浏览窗体 单元名 Public\uPKChaXForm.pas 属性 名称 类型 描述 约束 Img_Bar Timag 标题栏图片,动态从本地装入 Toolbar1 Ttoolbar 工具栏,按钮在程序设计时可 增加,其Images为frmpublic 中的ImageList Qry ToraQuery 数据查询控件 17 第 17 页 共 38 页 DataSource1 TdataSource 数据源 DBGridEh1 TstatusBar 数据显示控件 TB_Query Ttoolbutton 查询按钮 TB_Close 关闭 TB_Print 打印 TB_Design 设计报表 TB_Export 导出 方法 FormCreate 描述 动态截入Img_bar的图片文件 调用参数与类型 返回参数与类型 无 算法说明 TB_ExportClick 描述 点击导出按钮,将DBGridEh1中的表格数据导 出至文件中 调用参数与类型 TDBConn,TDM,TCaoZY, TPubVars 返回参数与类型 算法说明 调用frmpublic中的过程ExpDBGridEh TB_DesignClick 描述 设计报表过程,根据该按钮的Tag指定的报表 编号,打开该报表设计器 调用参数与类型 返回参数与类型 算法说明 通过创建类TfrmReport的对象完成该方法。 9.5. TPKChaZForm 1.窗体设计 2.类设计 18 第 18 页 共 38 页 用途 查找窗体基类,主要功能如下: 1.上下箭头选择及双击,回车键代码处理 2.窗体显示时指定显示位置,在formShow中增加代码 3.GetReturn过程用于获得返回值 4.presearch(PYM:String):integer,用于进行预查询,返回值为查询的 记录数量如果结果为0,则未找到记录, 1找到一条记录 2:找到多条记 录 5.公用函数Public DoSearch用于调用该窗体及查询 6.该窗体不自动释放,必须在调用后进行释放。 单元名 Public\uPKChaZForm.pas 属性 名称 类型 描述 约束 E_PinYM Tedit 拼音码输入 Qry ToraQuery 数据查询控件 DataSource1 TdataSource 数据源 DBGridEh1 TstatusBar 数据显示控件 方法 DoQuery 描述 虚函数,必须在子类中实现 调用参数与类型 PYM:String 返回参数与类型 无 算法说明 GetQueryRecord 描述 调用执行查询过程,并返回执行该查询后查询 结果的记录数 调用参数与类型 PYM: String 返回参数与类型 Integer:记录数 算法说明 1. 打印查询qry 2. 计算qry结果的记录数:0:无记录1:一条 记录2:多条记录 ShowPosition 描述 在固定的位置显示该窗体 调用参数与类型 Left, Top: integer显示窗体坐标 返回参数与类型 算法说明 确定显示位置 9.6. TDM 公用数据模块类,用于数据访问。 用途 用于数据访问 单元名 Public\uDM.pas 属性 名称 类型 描述 约束 OraSession1 TOraSession 用于与数据库连接会话 19 第 19 页 共 38 页 DoSQL TOraQuery 用于与数据库操作 方法 GetConnParams 调用参数与类型 ConStr:TDBConn:数据库连接参数 返回参数与类型 无 算法说明 将ConStr对象中的各个数据库连接参数赋值 给OraSession1。 ConnDB 调用参数与类型 无 返回参数与类型 字符串型; '0':表示连接成功 '-1: 错误提示信息' 返回值为'-1'+Delims+ 错误提示信息 算法说明 打开OraSession1的连接,调用前必须先调用 GetConnParams过程获得连接参数 9.7. 全局变量声明单元:uPublic 系统全局变量声明单元用于声明系统全局变量和公用动态连接库中的过程和函数。具体含义与用途可参见单元文件中的注释说明。文件路径:Public\uPublic.pas 系统全局变量表定义如下: 序号 变量名 中文名 类型 变量说明 1 MyCaoZY TCaoZY 操作员 2 MyPubVars TPubVars 全局变量类 3 MyDBConn 数据库连接 4 ImageList1 主窗体图标,大图标 5 ImageList2 各子模块中工具栏及按 钮图标,小图标 9.8. 常量定义单元:uConsts 常量定义单元具体内容参见常量定义单元文件注释。文件路径:Public\uConsts.pas 9.9. 操作员类 (TCaoZY) 用途 系统操作员类 20 第 20 页 共 38 页 单元名 Public\uCaoZY.pas 属性 属性名称 类型 描述 约束 CaoZYDM String 操作员代码 CaoZYMM String 操作员密码 CaoZYXM String 操作员姓名 CaoZYQX TStrings 操作员权限编号列表,组+权限 CaoZYQXMC TStrings 操作员权限名称列表,组_权限 ZuBHList TStrings 组列表,表CaoZYQXZ中数据 QXBHList TStrings 权限列表,表CaoZYQX中数据 NewZuBHList TStrings 更新组编号列表,修改时的缓存 数据 NewQXBHList TStrings 更新权限编号列表,修改时的缓 存数据, PinYM String 拼音码 QiY Integer 是否启用,,:禁用,:启用 方法 GetUserData 描述 用于从数据库取得操作员数据 调用参数类型 BianM:String,用户编码 方法类型 Public 算法说明 从表CaoZYXX中查询操作员编号为BianM的用户,并将 操作员信息赋与各属性域,更新属性有: CaoZYDM,CaoZYXM,CaoZYMM,PinYM,QiY GetQuanXData 描述 获得操作员权限数据 调用参数类型 BianM:String,用户编码 方法类型 Public 算法说明 1. 从视图V_CaoZYQXMX中查询操作员编号为BianM的 用户的所有权限,权限列表赋与 CaoZYQX,CaoZYQXMC, 2. 从CaoZYQX中取得权限,赋与:QXBHList 3. 从CaoZYQXZ中取得权限组,赋与ZuBHList 4. 清空更新缓存NewZuBHList,NewQXBHList GetUserList 描述 用于获得操作员列表。 方法类型 Public 调用参数类型 无 返回参数类型 Tstrings 算法说明 从CaoZYXX表中获得所有QiY=1的操作员信息,并按操 作员编码排序返回列表。列表内容为CaoZYDM:CaoZYXM UpdateUserPass 描述 修改用户密码 方法类型 Public 调用参数类型 BianM操作员编码,NewPass新密码 String 返回参数类型 String,返回’0’成功,’-1:错误信息’失败 21 第 21 页 共 38 页 算法说明 修改CaoZYXX表,将CaoZYDM为BianM的记录CaoZYMM 修改为NewPass。 ClearUserData 描述 清空对象各属性数据 调用参数类型 无 返回参数类型 无 算法说明 SaveToDB 描述 将对象各属性数据存入数据库 调用参数类型 无 方法类型 Public 算法说明 调用私有方法完成以下工作 1.保存CaoZYXX 2.保存CaoZYQXZ 3.保存CaoZYQX DeleteUser 描述 从数据库中删除指定用户 调用参数类型 BianM:String,要删除的用户编号 返回参数类型 String:’0’成功,’-1:E.Message’失败 算法说明 1.从CaoZYQXZ中删除CaoZYDM=BianM的记录 2.从CaoZYQX中删除CaoZYDM=BianM的记录 3.从CaoZYXX中删除CaoZYDM=BianM的记录 AddQX 描述 将指定的权限赋与指定的操作员, 调用参数类型 BianM,QuanXBH:String 操作员代码,权限编号 返回参数类型 String: ‘0’成功,’-1:E.Message’失败 算法说明 1.将BianM,QuanXBH插入表CaoZYQX(CaoZYDM,QuanXBH 2.该方法不提交数据,所以必须在事务中调用该方法 AddQXZ 描述 将指定的权限组赋与指定的操作员, 调用参数类型 BianM,ZBH:String 操作员代码,组编号 返回参数类型 String: ‘0’成功,’-1:E.Message’失败 算法说明 1.将BianM,ZBH插入表CaoZYQXZ(CaoZYDM,QuanXZ) 2.该方法不提交数据,所以必须在事务中调用该方法 DeleteQX 描述 从操作员权限表中删除指定的权限 调用参数类型 BianM,QuanXBH:String 操作员代码,权限编号 返回参数类型 String: ‘0’成功,’-1:E.Message’失败 算法说明 1.从CaoZYQX中删除CaoZYDM=BianM,QuanXBH=QuanXBH 2.该方法不提交数据,所以必须在事务中调用该方法 DeleteQXZ 描述 从操作员权限组表中删除指定的权限组 调用参数类型 BianM,ZBH:String 操作员代码,组编号 返回参数类型 String: ‘0’成功,’-1:E.Message’失败 算法说明 1.从CaoZYQXZ中删除CaoZYDM=BianM,QuanXZ=ZBH 2.该方法不提交数据,所以必须在事务中调用该方法 SaveCZY 描述 保存操作员基本信息: CaoZYDM,CaoZYXM,RenYBH,QiY,PinYM 调用参数类型 无 返回参数类型 String;’0’成功 ‘-1’失败 22 第 22 页 共 38 页 算法说明 1.从CaoZYXX表中查找CaoZYDM=CaoZYDM的记录,未找 到则新增加,找到则修改 2.该方法不提交数据, SaveCZYQX 描述 将NewQXBHList中的数据保存到CaoZYQX表中 调用参数类型 返回参数类型 算法说明 循环更新用户权限明细,对照QXBHList和NewQXBHList 进行更新 1.遍历QXBHList中每一项,若NewQXBHList中不存在 则删除DeleteQX 2.遍历NewQXBHList中每一项,若QXBHList中不存在 则增加AddQX; 3.该函数不提交数据,必须在事务中调用 SaveCZYQXZ 描述 将NewZuBHList中的数据保存到CaoZYQXZ表中 调用参数类型 返回参数类型 算法说明 循环更新用户权限组,对照ZuBHList和NewZuBHList 进行更新 1.遍历ZuBHList中每一项,若NewZuBHList中不存在 则删除DeleteQXZ 2.遍历NewZuBHList中每一项,若ZuBHList中不存在 则增加AddQXZ; 3.该函数不提交数据,必须在事务中调用 9.10. 报表管理类类 (TRpt) 用途 报表管理类 单元名 Public\uRpt.pas 属性 属性名称 类型 描述 约束 BianH String 报表编号 MingC String 报表名称 ShuoM String 报表说明 tmpFileName TStrings 临时文件名 方法 ClearData 描述 清空对象数据 调用参数类型 方法类型 Public 算法说明 从表CaoZYXX中查询操作员编号为BianM的用户,并将 操作员信息赋与各属性域,更新属性有: CaoZYDM,CaoZYXM,CaoZYMM,PinYM,QiY GetData 描述 从数据库中取得报表的描述信息,不含文件信息 23 第 23 页 共 38 页 调用参数类型 BH: String:报表编号 方法类型 Public 算法说明 1. 从视图RptDef中查询报表编号=BH的记录 SaveToDB 描述 将本地文件的信息保存在数据库中 方法类型 Public 调用参数类型 FileName, ReportNo: String 返回参数类型 Tstrings 算法说明 1首先确定数据库中是否存在该记录bianh=ReportNo 2.若存在,则修改该记录,若不存在,则新增记录。 GetFileFromDB 描述 从数据库中将报表定义信息取出,并保存至本地文件中 方法类型 Public 调用参数类型 FileName: 保存的本地文件名 ReportNo: 报表编号 返回参数类型 String,返回’0’成功,’-1:错误信息’失败 算法说明 从表rptdef中取得指定编号的报表记录,将其BOLB 信息保存至FileName文件中。 9.11. 报表打印类 (TfrmReport) 用途 报表打印类,采用FastReport控件打印输出报表和设计报表 单元名 Public\uReport.pas 属性 属性名称 类型 描述 约束 frxReport1 TfrxReport 报表打印控件 frxDesigner1 TfrxDesigner 报表设计控件 ReportNo String 报表编号 Public 方法 DesignReport 描述 打印报表设计器,设计FrxReport1中的报表 调用参数类型 方法类型 Public 算法说明 在调用该方法前,frxReport1必须已经装入其 报表文件 frxDesigner1SaveReport 描述 FrxDesigner1的SaveReport事件,用于在设 计报表时,点击保存设计器中的报存按钮自动 将报表文件保存至数据库 调用参数类型 方法类型 Public 算法说明 1. 将frxReport中的信息保存至本地报表文 件 2. 采用TRpt将该文件保存至数据库。 24 第 24 页 共 38 页 GetRptFile 描述 根据公用数据;ReportNo的内容,从数据库中 将报表文件取出,并载入该文件至frxReport1 控件 方法类型 Public 调用参数类型 返回参数类型 Tstrings 算法说明 1. 创建对象TRpt 2. 根据报表编号取得该报表的文件名 3. 采用Trpt从数据库中将报表文件取出存 入本地文件 4. 将该报表文件载入控件frxReport1 ShowReport 描述 生成并预览报表 方法类型 Public 调用参数类型 返回参数类型 算法说明 调用frxReport1的ShowReport方法。 9.12. 公用对话框:uDialogs 公用对话框函数如下: 序号 函数声明 说明 1 MSGMessage(MyString:String) 2 MSGWarning(MyString: String) 3 MSGQuestion(MyString: String):Boolean 9.13. 数据库连接参数类TDBConn 用途 数据库连接参数类 单元名 Public\uDBConn.pas 属性 属性名称 类型 描述 约束 ServerIP String 服务器IP ServerName String 服务器名 Port String 端口号 SID String 数据库SID名称 UserName String 数据库用户名 Password String 数据库用户密码 Net Boolean 是否Net方式 25 第 25 页 共 38 页 方法 GetData 描述 用于从配置文件取得参数信息 调用参数类型 返回参数类型 无 算法说明 SaveData 描述 用于将属性数据保存于配置文件中 调用参数类型 返回参数类型 无 算法说明 9.14. 参数类TParams 用途 参数类 单元名 Public\uParams.pas 属性 属性名称 类型 描述 约束 CanSMC String 参数名称 XiT String 子系统 Value String 参数值 ShuoM String 说明 方法 GetData 描述 从数据库中读取该参数设置数据 调用参数类型 MC:String 返回参数类型 无 算法说明 从CanSXX表中取得CanSMC=MC的记录值,并将数据赋 与类相关属性 SaveData 描述 用于将属性数据保存于数据库中 调用参数类型 返回参数类型 无 算法说明 1.保存记录前,首先查找数据库中是否存在该参数 2.如果不存在,则新增,否则修改该记录 ReadString 描述 直接从数据库中读取指定参数的取值 调用参数类型 MC: String参数名称 返回参数类型 算法说明 从CanSXX表中查找CanSMC=MC的记录,未找到记录返 回’’ ReadInteger 描述 直接从数据库中读取指定参数取值 调用参数类型 MC: String参数名称 返回参数类型 算法说明 从CanSXX表中查找CanSMC=MC的记录,未找到记录返 回-1。 WriteString 描述 将字符串类型的参数值写入数据库 26 第 26 页 共 38 页 调用参数类型 MC,S: String参数名称,参数值 返回参数类型 Boolean,True:成功 False 失败 算法说明 如果该参数已经存在,则修改,如果不存在,则新增加 WriteInteger 描述 将整形类型的参数值写入数据库中 调用参数类型 MC: String;I:Integer参数名称,参数值 返回参数类型 Boolean,True:成功 False 失败 算法说明 如果该参数已经存在,则修改,如果不存在,则新增加 9.15. 公用变量类TPubVars 用途 参数类 单元名 Public\uPubvars.pas 属性 属性名称 类型 描述 约束 Apppath String 应用程序路径 IniName String 配置文件名及路径 ReportPath String 报表文件路径 SkinFile String 界面风格文件路径 方法 Init 描述 初始化 调用参数类型 返回参数类型 算法说明 对各变量进行赋值 9.16. 标准代码类TCodes 用途 参数类 单元名 Public\uCodes.pas 属性 属性名称 类型 描述 约束 DaiMBH String 代码编号 DaiMMC String 代码名称 DaiMKeyList String 代码取值列表 DaiMPickList String 代码名称列表 Counts String 代码项目数 ItemIndex 当前所选项目序号 XiTBH 子系统编号 ShuoM 说明 方法 GetData 描述 调用参数类型 DMBH,DMMC:String;代码编号,代码名称 27 第 27 页 共 38 页 返回参数类型 String 0:成功 –1:失败 算法说明 从DaiMXX表中取得代码编号=DMBH或代码名称=DMMC 的记录,按XuH排序,将返回记录各字段内容赋与对象 属性。并将记录数赋与Counts Clear 描述 清空类的数据 调用参数类型 无 返回参数类型 无 算法说明 GetKeyList 描述 取得指定代码的取值列表 调用参数类型 DMMC:String代码名称 返回参数类型 Tstrings 算法说明 该函数不影响对象现有属性 GetPickList 描述 取得指定代码的显示名称列表 调用参数类型 DMMC:String代码名称 返回参数类型 Tstrings 算法说明 该函数不影响对象现有属性 GetDaiMZLDB 描述 取得代码信息表中代码种类信息 调用参数类型 无 返回参数类型 OLEVariant 数据集形式 算法说明 查询Select Distinct DaiMBH,DaiMMC,XiT,ShuoM From DaiMXX Order By DaiMBH结果的数据集。以 TdataSetProvider.Data的形式返回 DeleteData 描述 从数据库中删除指定的代码 调用参数类型 DMBH:String要删除的代码编号 返回参数类型 ‘0’:成功;’-1’失败 算法说明 从DaiMXX表中删除所有DaiMBH为DMBH的记录 Delete from DaiMXX where DaiMBH=DMBH UpdateDMZL 描述 修改代码基本信息 调用参数类型 无 返回参数类型 ‘0’:成功;’-1’失败 算法说明 保存当前是对象的基本信息至数据库中,不保存取值信 息 Update DaiMXX Set DaiiMMC=DaiMMC, XiT=XiTBH, ShuoM=ShuoM Where DaiMBH=DaiMBH 9.17. 用户登录窗体 (TfrmLogin) 1. 窗体设计 28 第 28 页 共 38 页 2. 代码设计 用途 参数类 单元名 Public\uLogin.pas 引用单元 uPublic 属性 属性名称 类型 描述 约束 CB_XingM TcomboBox 代码编号 Edit2 Tedit 用户编号显示框 Edit3 Tedit 密码输入框 Btn_Login Tbitbtn 登录按钮 Btn_Close Tbitbtn 关闭按钮 MyCaoZY TcaoZY 操作员对象,在frmpublic中定 义,在调用该窗体前该对象必须 已经创建 方法 Btn_loginClick 描述 登录用户校验 调用参数类型 返回参数类型 算法说明 1. 根据用户所选择的用户编号,取得对象MyCaoZY 的数据 2. 对比MyCaoZY的密码是否与用户输入密码一致,若 一致,则该窗体的ModalResult为MrOk FormShow 描述 窗体显示时初始化操作员列表 调用参数类型 返回参数类型 算法说明 调用MyCaoZY的方法GetUserList取得该列表 CB_XingMChange 描述 选择用户姓名时,取得该用户的编号 29 第 29 页 共 38 页 调用参数类型 返回参数类型 算法说明 9.18. 修改密码窗体 (TfrmChangePass) 1. 窗体设计 2. 代码设计 用途 参数类 单元名 Public\uLogin.pas 引用单元 uPublic 属性 属性名称 类型 描述 约束 Edit1 Tedit 输入原密码 Edit2 Tedit 输入新密码 Edit3 Tedit 再次输入新密码 Btn_Change Tbitbtn 修改按钮 Btn_Close Tbitbtn 关闭按钮 MyCaoZY TcaoZY 操作员对象,在frmpublic中 定义,在调用该窗体前该对象 必须已经创建 方法 Btn_ChangeClick 描述 修改密码 调用参数类型 返回参数类型 30 第 30 页 共 38 页 算法说明 1. 调用当前全局操作员对象的方法UpdateUserPass 修改该用户密码 9.19. 选择界面风格窗体 (TfrmSkinSelect) 9.20. 关于窗体 (TfrmAboutBox) 显示系统版权信息。 9.21. 动态链接库公用函数和过程 9.21.1 Pankudll.DLL 此类函数、过程和窗体封装于动态链接库Pankudll.dll文件中。公用函数及过程列表如下: 序号 函数中文名 函数名 类别 用途 1 GetPYM 取得拼音码 函数 获得指定字符串的拼音码 2 PrevStr 前一字符串 函数 字符串递减 3 NextStr 后一字符串 函数 字符串递增 4 ReadRMB 人民币大写 函数 将数字转换成人民币大写 5 LockStr 加密字符串 函数 6 日期间天数 函数 DaysBetween 31 第 31 页 共 38 页 7 LocalIP 本机IP地址 函数 8 GetPosString 分解字符串 函数 9 1. GetPYM 语法:Function GetPYM(MyStr:String):WideString; Far; External 'pankudll.dll'; 参数: 参数 输入/参数名 是否类型 输出 可空 MyStr IN N String 返回值: 说明: 返回值为MyStr的拼音码首字母,如:张三的拼音为“ZhangSan”,其拼音码为:ZS 2. PreStr 语法:Function PrevStr(S:String):WideString; Far; External 'pankudll.dll'; 参数: 参数 输入/参数名 是否类型 输出 可空 S IN S N String 返回值: 说明: 返回值为S的前一位字符串,如:’A001”的前一位为’A000’,’000B’的前一位为’000A’ 3. NextStr 语法:Function NextStr(S:String):WideString; Far; External 'pankudll.dll'; 32 第 32 页 共 38 页 参数: 参数 输入/参数名 是否类型 输出 可空 S IN S N String 返回值: 说明: 返回值为S的后一位字符串,如:’A001”的后一位为’A002’,’000B’的前一 位为’000C’ 4. ReadRMB 语法:Function ReadRMB(F:Real):WideString; Far; External 'pankudll.dll'; 参数: 参数 输入/参数名 是否类型 输出 可空 F IN F:金额变量 N Real 返回值: 说明: 返回值为数字型金额变量F人民币大写字符串的,如:F=12.34,则返回值为:壹拾贰元叁角肆分。 5. LockStr 语法:Function LockStr(S:String):WideString; Far; External 'pankudll.dll'; 参数: 参数 输入/参数名 是否类型 输出 可空 S IN S N String 返回值: S字符串加密后的字符串 说明: 33 第 33 页 共 38 页 加密字符串,加密字符串再次加密后即可得到原字符串。 注意:该函数不能对字符单引号( ‘ )和字符 点( . )进行处理。 6. DaysBetween 语法: DaysBetween(Date1,Date2:TDateTime):Integer;Far;External 'pankudll.dll' 参数: 参数 输入/参数名 是否类型 输出 可空 Date1 IN 起始时间 N DateTime Date2 IN 截止时间 N DateTime 返回值: 取得两个日期之间的天数 说明: 7. LocalIP 语法:Function LocalIP:WideString; Far; External 'pankudll.dll'; 参数: 参数 输入/参数名 是否类型 输出 可空 无 IN N 返回值: 本地计算机的IP地址 说明: 8. GetPosString 语法:Function GetPosString(B:Byte;S:String;WordDelims:Char):WideString; Far; External 'pankudll.dll'; 参数: 参数 输入/参数名 是否类型 输出 可空 B IN 位置 N Byte 34 第 34 页 共 38 页 S IN 字符串 N String WordDelims IN 分隔符 N Char 返回值: 说明: 获得指定字符串中第B个分隔符以后的字符子串。 例:S=’张三~男~13~郑州市~大学’ 那么GetPosString(2,S,’~’)=’男’ 9. 语法: 参数: 参数 输入/参数名 是否类型 输出 可空 IN N 返回值: 说明: 10. 9.21.2 PKCommon.DLL 与数据库相关的函数、过程及窗体封装于动态链接库PKCommon.DLL中。其中封装函数及过程列表如下: 序号 函数中文名 函数名 类别 用途 1 Now19 当前时间 函数 2 Now10 当前日期 函数 3 窗体 1. Now19 语法:Function Now19:WideString; Far; External 'pkcommon.dll'; 35 第 35 页 共 38 页 参数: 参数 输入/参数名 是否类型 输出 可空 无 返回值:WideString 返回值为调用函数时服务器的时间字符串:格式为:yyyy-mm-dd,hh:mm:ss 说明: 2. Now10 语法:Function Now10:WideString; Far; External 'pkcommon.dll'; 参数: 参数 输入/参数名 是否类型 输出 可空 无 返回值:WideString 返回值为调用函数时服务器的日期字符串:格式为:yyyy-mm-dd 说明: 36 第 36 页 共 38 页 第10章 各功能模块设计说明 10.1. 月结及盘点处理: 月结时主要需要考虑库存信息盘点及往来帐的结转问题。处理流程如下: 月底封帐?修改盘点数据(录入实际盘点库存)?月结 1. 月底封帐:删除现有盘点数据,自动生成新的盘点数据,并修改当前月份状态为封帐, 封帐以后不能进行开单等操作。该操作员使用数据库端储存过程完成:P_FengZ 2. 盘点:用户手工修改自动生成的盘点数据。 3. 月结:结转该仓库的库存盘点信息,往来帐信息,并生成新的月份信息。该操作使用存 储过程完成:P_YueJ 4. 月结时各个货位的盘点数据自动结转,不能只结转单个货位数据。 37 第 37 页 共 38 页 第11章 附件 1. 《 delphi窗体设计规范..doc》 2. 《 软件部Delphi代码编写规范.doc》 3. 4. 38 第 38 页 共 38 页
/
本文档为【医药进销存系统详细设计说明书】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索