已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告2010/2011学年 第一学期课程名称: 数据库设计 专业班级: 计算机0801 姓 名: 王健松 学 号: 080405009 指导教师: 张胜男 课程设计指导教师评语 成 绩:_ 指导教师签字:_4S店管理系统1引言设计并开发4s店销售与售后服务系统软件,实现汽车销售,零件销售,售后服务,库存管理等功能2 总体设计2.1系统运行环境 1)操作系统:windows xp 2)数据库:SQL Sever2000 3)前端开发软件:Power Builder9.02.2软件功能描述 系统功能可概括分为5个模块,12个小模块,即:整车销售模块,零配件模块,售后服务模块,系统管理模块,基本信息模块;整车销售管理模块,整车进货管理模块,整车库存管理模块,零配件销售管理模块,零配件进货管理模块,零配件库存管理模块,维修管理模块,整车信息,零配件信息,供应商信息,客户信息,用户管理模块。系统功能模块,如图2所示:(1) 整车销售1) 整车销售管理:记录整车的销售信息,实现增,删,改,查等功能2) 整车进货管理模块:记录整车进货的管理信息,实现对进货单的增删改查等功能3) 整车库存管理:记录整车的库存管理信息(2) 零配件1) 零配件销售管理:记录零配件的销售信息,实现增,删,改,查等功能2) 零配件进货管理:记录零配件进货的管理信息,实现对进货单的增删改查等功能3) 零配件库存管理:记录零配件的库存管理信息(3) 售后服务 1)维修管理:对已售车辆的维修数据进行管理(4) 基本信息1) 整车信息:存储整车的信息2) 零配件信息:存储零配件的信息3) 客户信息:存储客户的信息4) 供应商信息:存储供应商的信息(5) 系统管理1) 用户管理:对用户信息进行管理4数据库结构4.1.数据字典(见图3)表2.1 数据库表清单表名说明jbxx_khxx (基本信息_客户信息)jbxx_zcxx(基本信息_整车信息)jhgl_zcjhd(进货管理_整车进货单)xsgl_zcxs(销售管理_整车销售)wxd维修单kcgl_pjkc(配件库存)jbxx_khxx (基本信息_客户信息)jbxx_gysxx (基本信息_供应商信息)jbxx_pjxx(基本信息_配件信息)jhgl_pjjhd(进货管理_配件进货单)xsgl_pjxs(销售管理_配件销售)yhxx(用户信息)kcgl_zckc(整车库存)jbxx_gysxx (基本信息_供应商信息)jbxx_pjxx(基本信息_配件信息)表格设计在系统设计报告出此处不再列出。5详细设计 5.1用户登录窗口5.1.1界面与功能描述 用户登录窗口的运行界面如图4所示图4 用户登录窗口该模块主要用来验证用户是否合法,以及合法用户对自己密码的修改。用户输入用户号和密码后,点击“确定”按钮,如果数据库中有相应数据,则说明为合法用户,就可以进入到下一个页面。5.1.2 关键代码分析 1确定按钮的clicked事件 这里用到了动态SQL语句,用于检查输入数据与表数据的比较查询,以此实现(1) 用户是否存在(2) 用户输入密码是否正确(3) 存在的用户名,若密码输入3次不正确着退出系统 具体代码如下:string password,userpasswordstring ls_yhbm,ls_userid,ls_passwordls_userid=sle_userid.textls_password=sle_password.textg_userid=sle_userid.text /g_userid为全局变量g_userpassword=sle_password.text /g_userpassword为全局变量if sle_userid.text= thenmessagebox(信息,请输入帐号密码)returnend ifif ls_userid=5 thenmessagebox(信息,测试页面)open(w_zmain)returnend ifstring ls_yhmc /游标的使用从此开始long ls_js=0declare yhxxcursor cursor forselect yhxx_yhm from yhxx; open yhxxcursor; if sqlca.sqlcode=-1 thenmessagebox(sql错误,string(sqlca.sqldbcode)+:+sqlca.sqlerrtext)elsels_yhmc=dofetch yhxxcursor into:ls_yhmc;if trim(ls_yhmc)=ls_userid thenls_js=1exitend ifloop while sqlca.sqlcode=0if sqlca.sqlcode=-1 thenmessagebox(sql错误,string(sqlca.sqldbcode)+:+sqlca.sqlerrtext)end ifend ifclose yhxxcursor; /游标语句结束处if ls_js=0 thenmessagebox(信息,用户不存在)sle_userid.text=sle_userid.setfocus()returnend ifselect yhxx_yhmm into :userpassword from yhxx where yhxx_yhm=:ls_userid;if ls_password=trim(userpassword) thenselect yhxx_yhbm into :ls_yhbm from yhxx where yhxx_yhm=:ls_userid;if trim(ls_yhbm)=采购部 thenmessagebox(信息,欢迎进入采购管理系统) open(w_cgmain)close(w_login) return elseif trim(ls_yhbm)=销售部 thenmessagebox(信息,欢迎进入销售管理系统) open(w_xsmain)close(w_login) return elseif trim(ls_yhbm)=高层 then messagebox(信息,欢迎进入4S店管理系统)open(w_main)close(w_login)returnelseif trim(ls_yhbm)=维修部 then messagebox(信息,欢迎进入维修管理系统)open(w_wxmain)close(w_login)return end ifelseg_cs=g_cs + 1 messagebox(错误信息,密码或用户名错误,请重新输入)if g_cs=3 then messagebox(错误信息,连续三次密码输入错误,退出程序) close(parent) return end ifend ifsle_password.text=sle_password.setfocus()用游标是为了实现用户名是否存在;三次输入不多则退出是设了一个全局变量,由此得以实现;部门判断则是检索表中信息匹配着打开相应窗口5.2车辆销售窗口5.2.1界面与功能描述 用户管理窗口的运行界面如图5所示图5 用户管理窗口 操作用户信息,并可实现指定列的模糊以及精确查询。5.2.2关键代码分析 (1)查询按钮的clicked事件dw_1.setfilter()if rb_1.checked=true then/精确查询模式程序choose case ddplb_1.text case 用户名dw_1.setfilter(用户名=+sle_1.text+)case 部门dw_1.setfilter(部门=+sle_1.text+)case 角色dw_1.setfilter(角色=+sle_1.text+)end chooseelse/模糊查询模式程序choose case ddplb_1.textcase 用户名 dw_1.setfilter(用户名 like+%+sle_1.text+%)case 部门dw_1.setfilter(部门 like+%+sle_1.text+%)case 角色dw_1.setfilter(角色 like+%+sle_1.text+%)end chooseend if dw_1.retrieve() /检索数据,将符合条件的数据显示在数据窗口中使用到两个函数:Setfilter(),retrieve()函数。Setfilter函数中语句格式符合动态SQL语句查询格式,其用于对涉及的表中的数据进行筛选,然后用retrieve函数返回筛选后的结果5.3 库存管理窗口5.3.1界面与功能描述 库存管理窗口的运行界面如图6所示图6 (整车)库存管理窗口 库存分为配件库存与整车库存。他们结构与功能实现相同。在此演示整车库存。 此用于整车的库存管理,可查看商品库存数量并且添加库存提示。5.3.2 具体代码分析 数据窗口中库存提示的动态显示:在数据窗口中建立了一个文本框,然后点击属性里text栏旁边的一个按钮,然后在其中添加if函数,进行对其文本内容的动态修改5.4 进货(销售)盘点窗口5.4.1界面与功能描述 整车进货(销售)盘点窗口的运行界面如图7,8所示图7 整车进货盘点窗口图8 整车销售盘点窗口 整车与配件的进货与销售盘点结构与功能构成都基本相似(整车或配件的进货盘点中是看进货单数据入库没,整车或配件的销售盘点中是看销售单数据提货没。入库与提货都会对库存的商品的数量产生影响)。在此展示整车进货盘点。在进货(销售)盘点中,可以查看进货单(销售单)中商品是否入库(提货)。 5.4.2 具体代码分析 1入库按钮的clicked事件 g_row=dw_1.getrow () /g_row为全局变量 if g_row=0 thenmessagebox(提示,没有数据)returnend if jh_sl_jh=dw_1.getitemnumber (g_row,8) jh_zcmc=dw_1.getitemstring (g_row,3) jh_rkf=dw_1.getitemstring(g_row,1) if trim(jh_rkf)=否 then SELECT zckc_kcsl INTO :jh_sl FROM kcgl_zckc where zckc_zcmc=:jh_zcmc; jh_sl=jh_sl - jh_sl_jh UPDATE kcgl_zckc SET zckc_kcsl = :jh_sl where zckc_zcmc=:jh_zcmc; messageBox(提示信息,入库已操作成功+string(jh_sl)+,+string(jh_sl_jh) jh_rkf=是 UPDATE jhgl_zcjhd SET rkf=:jh_rkf where zcjhd_zcmc=:jh_zcmc;elsemessageBox(提示信息,已入库) end ifdw_1.settransobject( sqlca )dw_1.retrieve()涉及的数据窗口是整车进货单表。 利用数据窗口函数getrow获得所点击的条状数据行的行号。再由函数getitemstring或者getitemstring获取选中行第几列的数据。本代码中先判断所选数据条是否入库。判断后,若为“否”着获取其中数量再获得库存数量,在算数操作后将修改的数据传回数据库;若为“是”,则产生提示“已入库”。6出现的问题及解决方法(1) 多数表中如供应商信息,整车信息,配件信息,销售单信息中编号,自动生成不同编号(主键)这类表中的主键信息因为要满足唯一的要求,所以通常应该程序自动生成主键信息(如编号)。这样就可以防止数据无法录入,录入错误导致数据混乱的错误。同时这类主键信息为通常为CHAR类型,主键最好是字母与数字的结合。这样便于识别,区分与查询。利用的解决技术是PB自带的字符处理函数,实现中可以人为设定主键字符部分,然后对主键数值部分进行操作,以生成各不相同的主键(例如:编号)。在此以配件信息录入窗口为例,实现此功能。在窗口的open事件中,假如如下代码片段:string ls_zdbh1,ls_zdbh,ls_zdbh2select pjxx_bh into :ls_zdbh1 from jbxx_pjxx;/此语句用于检查表是否为空if ls_zdbh1= thenls_zdbh=pjxx1st_pjbh.text=ls_zdbhreturnend ifselect max (jbxx_pjxx.pjxx_bh) into :ls_zdbh2 from jbxx_pjxx; /检索表中主键列做大项,完成不同主键的生成ls_zdbh=mid(trim(ls_zdbh2),5) /用于取主键数值部分ls_zdbh=string(long(ls_zdbh)+1)ls_zdbh=pjxx+trim(ls_zdbh) st_pjbh.text=ls_zdbh /在指定控件中显示用到的主要函数是mid函数,用于区主键信息的数值部分。取得数值部分后对数值部分采取加一操作,生成唯一的主键。7参考资料1 王珊数据库系统概论(第四版)北京:高等教育出版社,20062 陈永强PowerBuilder数据库开发经典实例精解北京:机械工业出版社,20078总结此次实验反映了很多问题,放映出了当前作为计算机系学生我的状态。不足的地方:工具使用不熟
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年BIM技术在电力工程中的创新应用
- 2ae基础培训教程2024版:开启你的影视制作之旅
- 广告合同案例
- 防灾减灾安全主题班会教案(9篇)
- 2022-2023学年人教部编版七年级上学期语文期末达标测试卷(B卷)
- 2024年教育视野:《打瞌睡的房子》课件的新发展
- 《废墟的召唤》课件专着介绍
- 2024-2025学年新教材高中生物第一章遗传因子的发现第2节第2课时自由组合定律及其应用课时作业含解析新人教版必修2
- 2024-2025学年高中历史第二单元凡尔赛-华盛顿体系下的短暂和平第8课非战公约教学教案岳麓版选修3
- 2025版高考语文一轮复习板块4新高考模式下的语言文字运用专题1考题研析第5讲语言表达连贯教案
- 2024年《突发事件应对法》知识考试题库(含答案)
- 音乐鉴赏(西安交通大学)智慧树知到期末考试答案2024年
- MOOC 数据挖掘与python实践-中央财经大学 中国大学慕课答案
- 湖州市第七届“期望杯”小学数学竞赛试题(六年级)附参考答案
- 2024年护坡施工合同范本
- (2024年)量子计算机课件(精)
- 脑血管病介入治疗
- 世界工厂的中国特色新时期工人状况的社会学鸟瞰
- 2023中国路跑赛事蓝皮书
- 办公室办文办会培训课件
- 尾矿库作业人员试题
评论
0/150
提交评论